Jaka jest różnica między required
i ng-required
(sprawdzanie poprawności formularza)?
Jaka jest różnica między required
i ng-required
(sprawdzanie poprawności formularza)?
Odpowiedzi:
Elementy formularza AngularJS szukają required
atrybutu do wykonywania funkcji sprawdzania poprawności. ng-required
pozwala ustawić required
atrybut w zależności od testu logicznego (na przykład, wymaga tylko pola B - powiedzmy numeru studenta - jeśli pole A ma określoną wartość - jeśli wybrałeś „student” jako wybór )
Jako przykład, <input required>
i <input ng-required="true">
są zasadniczo to samo
Jeśli zastanawiasz się, dlaczego tak jest (a nie tylko make <input required="true">
lub <input required="false">
), jest to spowodowane ograniczeniami HTML - required
atrybut nie ma żadnej powiązanej wartości - sama jego obecność oznacza (zgodnie ze standardami HTML), że element jest wymagany - więc kątowy potrzebuje sposobu na ustawienie / wyłączenie wymaganej wartości ( required="false"
byłby nieprawidłowym kodem HTML)
<form method="post" action="/foo" novalidate>
. Ponownie, jest to atrybut html5, niezwiązany z angularJS.
ng-required
wskazuje zmienną scope / controller, Angular monitoruje ją pod kątem zmian i odpowiednio ustawia wymagany atrybut. Podczas gdy w przypadku prostego required
atrybutu HTML nie masz takiej elastyczności. Nie? A skoro jesteśmy na tym samym temacie, co powiesz na ng-attr-required
? Czy to dokładnie to samo co ng-required
?
Chciałbym zrobić dodatek do odpowiedzi tiago :
Załóżmy, że ukrywasz element, używając ng-show
i dodając do niego required
atrybut:
<div ng-show="false">
<input required name="something" ng-model="name"/>
</div>
wyrzuci błąd coś takiego:
Niepoprawna kontrola formularza o nazwie = '' nie może być aktywowana
Wynika to z faktu, że po prostu nie można narzucić required
weryfikacji hidden
elementów. Użycie ng-required
ułatwia warunkowe zastosowanie wymaganej walidacji, co jest po prostu niesamowite !!
ng-if
zamiast ng-show
/, ng-hide
aby ominąć ten potencjalny problem.
Atrybut HTML required="required"
jest stwierdzenie mówi przeglądarce, że pole to jest wymagane, aby formie ważność. ( required="required"
to formularz XHTML, samo użycie required
jest równoważne)
The kątowej atrybut ng-required="yourCondition"
„isrequired (yourCondition)” oznacza i ustawia atrybut HTML dynamicznie dla Ciebie w zależności od stanu pacjenta.
Należy również pamiętać, że wersja HTML jest niejasna , to nie można napisać coś podobnego warunkowego required="true"
lub required="false"
tylko obecność tych sprawach atrybutów (obecnie oznacza prawdziwy)! Tutaj pomaga Ci Angular ng-required
.