2012-10-05 7 views
7

AngularJS'yi değerlendiriyorum ve şu ana kadar çok hevesliyim. Ama doğrulama cephesinde eksik bir şey var: Böyle built-in mechanisms ve AngularUI initiative olarak kullanılabilir seçenekler, gibi, her doğrulama görünümünde beyan edilmelidir, yönergelerde doğrulayıcılarını uygulamak ve: Bu örnekteAngularJS ile doğrulama stratejileri

<form ng-controller="SomeController"> 
    <!-- Notice the 'required' attribute directive below: --> 
    <input type="text" ng-model="user.name" name="uName" required /> 
</form> 

, Görünüm, user.name'un gerekli olduğunu tanımlamaktır. Görüntünün modelin doğru şeklini tanımladığını söylemek gibi. Biraz geriye doğru değil mi? Görünüm durumları, hata durumları da dahil olmak üzere yansıtmıyor mu?

Yanlış mıyım? denetleyicide denetleyicisini uygulamak, modelin verilerini geçerli/geçersiz olarak bildirmek ve görünümü uygun şekilde güncelleştirmek (form denetimlerini kırmızı ile boyama, hata iletilerini gösterme, önceki hataları temizleme vb.) Olup olmadığını merak ediyorum. AngularJS'nin bunun için yeterince güçlü olduğunu farz ediyorum ama şu ana kadarki dokümanlar ve örneklerde yukarıda anlattığım gibi bir şey görmedim. Teşekkürler!

+0

'required' bir HTML5 özniteliğidir. http://html5doctor.com/html5-forms-introduction-and-new-attributes/ Ayrıca 'input'' type' özniteliklerini 'email, tel, date, url, number' gibi şeylere ayarlayabilirsiniz ve doğrulayacaktır buna göre. –

+0

Ayrıca, AngularUI Doğrulama'yı hiç kullanmadım, sadece HTML5 ile doğrudan yukarı doğru AngularJS doğrulamasını kullandım ve çok iyi çalıştı. AngularUI Doğrulaması, bir alana özel ifade doğrulaması eklemek içindir. –

cevap

1

Bakış açısı hakkında her şeyi tahmin ediyorum. Gördüğüm gibi, bir form içeren bir görünümü tanımlıyorsunuz ve bu formda bir tür metin girişi var. Gerektiğinde işaretlediğiniz bu metin girişi. Dikkat ederseniz, açısal metin kullanıcı.adı veya user.age veya başka herhangi bir şey olup olmadığı umurumda değil. Sadece bu metin girişini gerekli ile ilişkilendirir. Bu yüzden sadece metin girişinin ve bu modelle ilişkilendirilen modelin nihai sonuç olduğunu doğrular (geçerlilik doğrulanırsa değerin girdiği yer!). Varsayılan olanlar değildir doğrulamaları yapıyor istiyorsanız

, özel form doğrulamaları için

http://docs.angularjs.org/guide/forms

göz at.

Önceden üretilmekte olan görünümü zaten biliyor olduğunuzdan (derleme zamanında çağrısı yapalım!), Tüm doğrulayıcıları görünümde ilişkilendirebilirsiniz ve bu nedenle denetleyicide bunu yapmak zorunda kalmazsınız (belki de çalışır durumdadır) -time doğrulama!).