У меня есть угловая директива, используемая в качестве атрибута для проверки ввода.
Ввод выглядит так (нефрит)
input.form-control(type='text', name='subjectinput', id='subjectinput', subjectid-noprefix-validator='(subject.nosuffix==1)')
и валидатор выглядит так
.directive('subjectidNoprefixValidator', function () {
return {
require: ['^form', 'ngModel'],
scope: {
noprefixformat: '=subjectidNoprefixValidator'
},
link: function (scope, element, attrs, ctrls) {
scope.form = ctrls[0]; // so we can use form reference in displaying error messages
var ngModel = ctrls[1];
ngModel.$validators.subjectidnoprefix = function (value) {
var status = true;
// removed some logic that sets status true or false
// using $scope.noprefixformat parameter
return status;
};
}
};
});
Это работает нормально. Однако иногда в действиях на странице происходит событие, требующее повторной проверки на ВХОДе, не касаясь его; некоторые изменения переключателя должны повторно активировать его и обновить статус проверки (как вы видите, мой валидатор имеет параметр).
Я попытался добиться этого, вызвав Контроллер страницы
$scope.subjCreationForm.subjectinput.$validate();
но, похоже, это не работает. В чем может быть дело и есть ли другой способ программно инициировать проверку поля, когда в нем используются $валидаторы?