Şu yöntemi kullanıyorum: http://plnkr.co/edit/A6gvyoXbBd2kfToPmiiA?p=preview yalnızca bulanıklıktaki alanları doğrulamak için. Bu iyi çalışıyor, ancak kullanıcı 'submit' düğmesine tıkladığında (gerçek bir gönderme değil, bir işleve veri tıklama çağrısı) bunları doğrulamak (ve böylece varsa bu alanlar için hataları göstermek) istiyorum
Bu düğmeye tıklandığında tüm alanlarda doğrulamayı tekrar tetiklemenin bir yolu var mı?
Açısal yöntem, her model değişikliğinde yaptığı gibi doğrulama işlemini yapmasına izin vermek ve sonucu yalnızca istediğiniz zaman kullanıcıya göstermek olacaktır.
Bu durumda hataların ne zaman gösterileceğine siz karar verirsiniz, sadece bir bayrak ayarlamanız gerekir: http://plnkr.co/edit/0NNCpQKhbLTYMZaxMQ9l?p=preview
Bildiğim kadarıyla daha gelişmiş form kontrolüne sahip olmamızı sağlamak için angular'a açılan bir sorun var. Çözülmediği için mevcut tüm doğrulama yöntemlerini yeniden icat etmek yerine bunu kullanırdım.
düzenleme: Ancak kendi yolunuzda ısrar ediyorsanız, işte göndermeden önce doğrulama ile değiştirilmiş kemanınız. http://plnkr.co/edit/Xfr7X6JXPhY9lFL3hnOw?p=preview Denetleyici, düğmeye tıklandığında bir olay yayınlar ve yönerge doğrulama sihrini yapar.
Bir yaklaşım, tüm nitelikleri kirli olmaya zorlamaktır. Bunu her denetleyicide yapabilirsiniz, ancak çok dağınık olur. Genel bir çözüme sahip olmak daha iyi olacaktır.
Aklıma gelen en kolay yol bir yönerge kullanmaktı
İşte yönerge
myModule.directive('submit', function() {
return {
restrict: 'A',
link: function(scope, formElement, attrs) {
var form;
form = scope[attrs.name];
return formElement.bind('submit', function() {
angular.forEach(form, function(field, name) {
if (typeof name === 'string' && !name.match('^[\$]')) {
if (field.$pristine) {
return field.$setViewValue(field.$value);
}
}
});
if (form.$valid) {
return scope.$apply(attrs.submit);
}
});
}
};
});
Ve örneğin form html'inizi güncelleyin:
<form ng-submit='justDoIt()'>
olur:
<form name='myForm' novalidate submit='justDoIt()'>
Tam bir örneği burada görebilirsiniz: http://plunker.co/edit/QVbisEK2WEbORTAWL7Gu?p=preview
Düğmeye tıklandığında doğrulamayı ele alırken bu yaklaşımı seviyorum.
Kontrolörden herhangi bir şey çağırmaya gerek yoktur,
Her şey bir yönerge ile halledilir.
github]2 üzerinde