2014-12-16 3 views
0

Надеемся воссоздать некоторые функции, доступные нам в Angular 1.3.X - приложение, которое я создаю , имеет, чтобы хорошо работать (или, по крайней мере, достаточно) в IE 8. По этой причине я (к сожалению) вынужден не использовать 1.3.X. Я столкнулся с некоторыми проблемами, пытаясь подражать атрибуту $ng-touched, который доступен в 1.3.X.Создайте угловую директиву для проверки на размытие

Одна часть нашего приложения должна предупреждать пользователей о том, что их элемент формы недействителен, если у них есть tab -bed через него. Как бы то ни было, он не устанавливает атрибут $invalid любых элементов формы, если я не ввел текст и не удалил его. Я попытался с помощью $pristine и $dirty для достижения $invalid после обхода через, но они оба, кажется, действуют на основе стоимости входной, в не будьте трогали (возможно, это был один из самых больших преимуществ 1.3.X)

Гола: когда пользователь вводит вкладку в форму, проверки могут быть запущены и заданы каждый пустой элемент формы как $invalid, если он пуст. В основном, чтобы эмулировать поведение $ ng-тронутого attr в 1.2.X. Вот что у меня есть до сих пор:

angular.module('goodStewardApp') 
.directive('chf-validate', function() { 
return { 
    require: 'ngModel', 
    link: function(scope, elm, attrs, ctrl) { 
    $(elm).blur(
     function(elm) { 
     ctrl.$setValidity(elm, false); 
     } 
    ); 
    } 
}; 
}); 

Любая помощь была бы принята с благодарностью. Благодаря!

+0

Первым аргументом обработчика события jQuery является 'event' not element – charlietfl

ответ

1

Оказывается, лучший способ выполнить эмулирование поведения ng-touched в угловом 1.2.x - использовать ngBlur, чтобы установить атрибут проверки как истинный. Итак:

<form name="aForm"> 

    <input name="foo" ng-model="foo.bar" ng-blur="validateThisElement=true" ng-required="true"> 

    <div ng-show="aForm.foo.$error.required && validateThisElement"> 
     Oh no! An alert! 
    </div> 

</form> 

Это позволяет выполнить проверку после того, как пользователь tab s через вашу форму, единообразно, что люди привыкли к использованию компьютеров будут использовать для взаимодействия с угловой формой/приложением. Надеюсь, это поможет любому, кто все еще застрял w/1.2.X по причинам IE8!

Смежные вопросы