При выполнении некоторых фундаментальных исследований по пользовательской проверке на стороне клиента в Angular.js я читал документацию ngModel.NgModelController и нашел следующую криптическую строку
$setValidity (validationErrorKey, isValid); Измените состояние действительности и уведомите форму.
Этот метод можно вызвать в $parsers/$formatters. Однако, если возможно, используйте конвейер ngModel. $validators, который предназначен для автоматического вызова этого метода.
Спустя пару часов и многие поиски Google (и StackOverflow!) позже я ничего не нашел в этом конвейере ngModel.$validators
. Все пользовательские примеры валидации используют настройку $parsers/$formatters
, как показано ниже:
link: function (scope, elem, attr, ctrl) {
// Other necessary logic...
ctrl.$parsers.push(function () {
// Validation logic
ctrl.$setValidity('validation-type', true);
});
ctrl.$formatters.push(function () {
// Validation logic
ctrl.$setValidity('validation-type', true);
});
},
Вопрос: Документация Angular гласит, что приведенный выше код не является лучшей практикой и что эта мифическая пиковая линия ngModel.$validators
- правильный путь. Я не нашел никакой информации об этой лучшей практике. Как использовать ngModel.$validators
для правильной реализации этой пользовательской проверки клиентов?