Jaka jest różnica między requiredi ng-required(sprawdzanie poprawności formularza)?
Jaka jest różnica między requiredi ng-required(sprawdzanie poprawności formularza)?
Odpowiedzi:
Elementy formularza AngularJS szukają requiredatrybutu do wykonywania funkcji sprawdzania poprawności. ng-requiredpozwala ustawić requiredatrybut 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 - requiredatrybut 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-requiredwskazuje zmienną scope / controller, Angular monitoruje ją pod kątem zmian i odpowiednio ustawia wymagany atrybut. Podczas gdy w przypadku prostego requiredatrybutu 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-showi dodając do niego requiredatrybut:
<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ć requiredweryfikacji hiddenelementów. Użycie ng-requiredułatwia warunkowe zastosowanie wymaganej walidacji, co jest po prostu niesamowite !!
ng-ifzamiast ng-show/, ng-hideaby 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 requiredjest 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.