Jaka jest różnica między required
i ng-required
(sprawdzanie poprawności formularza)?
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 prostegorequired
atrybutu HTML nie masz takiej elastyczności. Nie? A skoro jesteśmy na tym samym temacie, co powiesz nang-attr-required
? Czy to dokładnie to samo cong-required
?Chciałbym zrobić dodatek do odpowiedzi tiago :
Załóżmy, że ukrywasz element, używając
ng-show
i dodając do niegorequired
atrybut:wyrzuci błąd coś takiego:
Wynika to z faktu, że po prostu nie można narzucić
required
weryfikacjihidden
elementów. Użycieng-required
ułatwia warunkowe zastosowanie wymaganej walidacji, co jest po prostu niesamowite !!źródło
ng-if
zamiastng-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życierequired
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"
lubrequired="false"
tylko obecność tych sprawach atrybutów (obecnie oznacza prawdziwy)! Tutaj pomaga Ci Angularng-required
.źródło