Oceniam AngularJS i do tej pory jestem bardzo entuzjastycznie nastawiony. Ale czegoś brakuje na froncie walidacji: dostępne opcje, takie jak built-in mechanisms i AngularUI initiative, wdrożyć weryfikatorów poprzez dyrektyw i, jako takie, każda walidacji powinny być zadeklarowane w widoku:Strategie walidacji z AngularJS
<form ng-controller="SomeController">
<!-- Notice the 'required' attribute directive below: -->
<input type="text" ng-model="user.name" name="uName" required />
</form>
W tym przykładzie, widok określa, że wymagany jest user.name
. To tak, jakby powiedzieć, że widok definiuje właściwy kształt modelu. Czy to nie jest trochę do tyłu? Czy widok nie powinien odzwierciedlać stanów, w tym stany błędów, gdy tak jest?
Czy się mylę? Zastanawiam się, czy możliwe jest zastosowanie jakichkolwiek walidatorów w sterowniku , sygnalizując dane modelu jako prawidłowe/nieważne, i odpowiednio aktualizując widok (formanty formularza malującego za pomocą czerwonego, pokazujące komunikaty o błędach, czyszczenie poprzednich błędów itd.). Zakładam, że AngularJS jest wystarczająco potężny, ale w dokumentach i próbkach do tej pory nie widziałem czegoś takiego, jak opisałem powyżej. Dzięki!
'required' jest atrybutem HTML5. http://html5doctor.com/html5-forms-introduction-and-new-attributes/ Możesz także ustawić atrybuty 'input'' type' na takie rzeczy jak 'email, tel, date, url, number' i sprawdzą poprawność odpowiednio. –
Również nigdy nie używałem AngularUI Validate, właśnie użyłem prostej metody sprawdzania AngularJS z HTML5 i działało idealnie. AngularUI Validate służy do dodawania niestandardowego sprawdzania poprawności wyrażenia do pola. –