У меня есть специальная директива проверки, которая правильно называется, когда одно поле изменено. Однако, действительно ли это поле действительно, также основано на другом значении поля. Это второе поле является выбранным списком, если это важно.
Мне было интересно, можно ли каким-то образом инициировать проверку вручную при изменении второй формы. Возможно, используя событие ng-change
. Каков правильный способ справиться с чем-то подобным?
Вот моя директива:
angular.module('myApp', []).
directive('validage', function () {
return {
require: 'ngModel',
link: function (scope, elem, attr, ngModel) {
function validate(value) {
var valid = true;
if ((GetDateDifference(new Date(value), new Date()) < 16 || GetDateDifference(new Date(value), new Date()) > 129)
&& scope.dep.DependantType == "Spouse") {
valid = false;
}
ngModel.$setValidity('validage', valid);
return value;
}
//For DOM -> model validation
ngModel.$parsers.unshift(function (value) {
var valid = true;
if ((GetDateDifference(new Date(value), new Date()) < 16 || GetDateDifference(new Date(value), new Date()) > 129)
&& scope.dep.DependantType == "Spouse") {
valid = false;
}
ngModel.$setValidity('validage', valid);
return value;
});
//For model -> DOM validation
ngModel.$formatters.unshift(function (value) {
var valid = true;
if ((GetDateDifference(new Date(value), new Date()) < 16 || GetDateDifference(new Date(value), new Date()) > 129)
&& scope.dep.DependantType == "Spouse") {
valid = false;
}
ngModel.$setValidity('validage', valid);
return value;
});
}
};
});
Если вы новичок в AngularJS, я определенно рекомендую прочитать эти 2 статьи: часть 1 и часть 2. Это обзор форм AngularJS.