Я пытаюсь создать директиву, которая должна отображать некоторые действия, когда поле ввода помечено как недействительное. В этом примере допустим, что у меня есть директива, которая проверяет, является ли ввод простым числом, и я хочу создать директиву, которая добавляет класс к элементу, когда он недействителен:
<input type="text" ng-model="primeNumber" validate-prime invalid-add-class="error">
Validate-prime использует синтаксические анализаторы и форматирование на ng-модели для обновления действительности модели.
Теперь я хочу, чтобы директива invalid-add-class добавляла класс "ошибка", когда модель недействительна, и удалять ее, когда она действительна. Другими словами, он должен смотреть свойство $valid (или $invalid) контроллера модели. Однако я не могу понять, как это сделать. Я пробовал:
link : function(scope, element, attrs, ctrl) {
ctrl.$watch("$valid", function(newVal, oldVal) {
//never fired
});
}
Возможно, я мог бы посмотреть некоторую переменную в области видимости, но я не знаю, какую переменную нужно наблюдать.
Итак, как я могу быть уведомлен о том, когда изменяется модель действия?