input
Dyrektywa AngularJS
Przykład
Pole wejściowe z wiązaniem danych:
<input ng-model="myInput">
<p>The value of the input field is:</p>
<h1>{{myInput}}</h1>
Definicja i użycie
AngularJS modyfikuje domyślne zachowanie <input>
elementów, ale tylko wtedy, gdy ng-model
atrybut jest obecny.
Zapewniają wiązanie danych, co oznacza, że są częścią modelu AngularJS i można się do nich odwoływać i aktualizować zarówno w funkcjach AngularJS, jak iw DOM.
Zapewniają walidację. Przykład: <input>
element z required
atrybutem ma $valid
ustawiony stan
false
tak długo, jak jest pusty.
Zapewniają również kontrolę państwa. AngularJS przechowuje aktualny stan wszystkich elementów wejściowych.
Pola wejściowe mają następujące stany:
$untouched
Pole nie zostało jeszcze dotknięte$touched
Pole zostało dotknięte$pristine
Pole nie zostało jeszcze zmodyfikowane$dirty
Pole zostało zmodyfikowane$invalid
Zawartość pola jest nieprawidłowa$valid
Zawartość pola jest prawidłowa
Wartość każdego stanu reprezentuje wartość logiczną i jest albo true
lub false
.
Składnia
<input ng-model="name">
Do elementów wejściowych odwołuje się wartość ng-model
atrybutu.
Klasy CSS
<input>
elementy wewnątrz aplikacji AngularJS mają określone klasy . Te klasy mogą służyć do stylizowania elementów wejściowych zgodnie z ich stanem.
Dodaje się następujące klasy:
ng-untouched
Pole nie zostało jeszcze dotknięteng-touched
Pole zostało dotknięteng-pristine
Pole nie zostało jeszcze zmodyfikowaneng-dirty
Pole zostało zmodyfikowaneng-valid
Zawartość pola jest prawidłowang-invalid
Zawartość pola jest nieprawidłowang-valid-key
Jeden klucz do każdej walidacji. Przykład:ng-valid-required
, przydatne, gdy istnieje więcej niż jedna rzecz, która musi zostać zweryfikowanang-invalid-key
Przykład:ng-invalid-required
Klasy są usuwane, jeśli reprezentowana przez nie wartość to false
.
Przykład
Zastosuj style dla prawidłowych i nieprawidłowych elementów wejściowych, używając standardowego CSS:
<style>
input.ng-invalid {
background-color: pink;
}
input.ng-valid {
background-color: lightgreen;
}
</style>