У меня есть два поля: поле пароля и поле подтверждения пароля.Смотреть другое значение модели в угловой директиве
В соответствии с бизнес-требованиями несоответствие пароля может отображаться только в поле подтверждения пароля в определенные моменты времени, если в это время пароли не совпадают.
Я решил, что лучший способ сделать это создать директиву подтверждения пароля:
.directive('confirmPasswordDirective',
['$timeout',
function($timeout){
return {
restrict: 'A',
require: 'ngModel',
link: function($scope, $element, $attrs, ngModel){
var getPassword = function(){//function to get password field value
return $scope.$eval($attrs.password);
};
// below is undefined
$scope.$watch([$attrs, $scope.$eval($attrs.password)], function(){
ngModel.$validators.confirmPassword = function(){
//watch ngModel here
};
});
}
}
}])
я могу получить значение модели пароля от GetPassword() функции, но я не могу просто смотреть модель значение пароля из этой директивы и срок действия теста на основе его значения.
Любая идея, как это сделать?
Вы пытаетесь смотреть массив. Он будет работать только при изменении длины массива. Используйте '$ watchCollection' или' $ watch' с третьим аргументом 'true'. – user3335966