Próbuję utworzyć dyrektywę, która powinna wykonywać niektóre akcje, gdy pole wejściowe jest oznaczone jako nieprawidłowe. W tym przykładzie pozwala zakładać Mam dyrektywę, która sprawdza, czy wejście jest liczbą pierwszą, a ja chcę stworzyć dyrektywę, która dodaje klasę do elementu kiedy jest nieprawidłowy:Ważność zegarka zgodnego z AngularJS
<input type="text" ng-model="primeNumber" validate-prime invalid-add-class="error">
validate-prime używa analizatory składni i formatery na modelu ng, aby zaktualizować poprawność modelu.
Teraz chcę, aby dyrektywa o nieprawidłowej klasie dodawała klasę "błąd", gdy model jest nieprawidłowy, i aby usunąć ją, gdy jest ona ważna. Innymi słowy, powinien obejrzeć właściwość $ valid (lub $ invalid) kontrolera modelu. Jednak nie mogę wymyślić, jak to działa. Próbowałem:
link : function(scope, element, attrs, ctrl) {
ctrl.$watch("$valid", function(newVal, oldVal) {
//never fired
});
}
Być może mogłem obejrzeć niektóre zmienne w zakresie, ale nie wiem, którą zmienną oglądać.
Jak mogę otrzymać powiadomienie o zmianie ważności modelu?
Jeśli możesz udostępnić swoją dyrektywę, będzie miło! –
Nie pamiętam, czego dokładnie używałem, ale drugie rozwiązanie CaioToOn jest już prawie całą linkiem. Tylko ciało drugiej funkcji powinno być wypełnione działaniem, które chcesz, gdy zmienia się ważność. – Tiddo