我有一个指令,可以监视表单是否已提交(因此我只能在提交后才能设置验证样式)。
问题是我在成功提交表单后无法“重置”表单。我该怎么做呢?
'use strict';
app.directive('formSubmitted', function() {
return {
restrict: 'A',
link: function(scope, element) {
scope.formSubmitted = false;
element.on('submit', function() {
scope.$apply(function() {
scope.formSubmitted = true;
});
});
scope.$watch('formSubmitted', function(submitted) {
if (submitted === true) {
element.addClass('submitted');
} else {
element.removeClass('submitted');
}
});
}
};
});
我试图从指令内部检查$ valid但是它不起作用(甚至不确定这是否是最佳方式)。
喜欢这个......
var form = scope[element[0].name];
element.on('submit', function() {
scope.$apply(function() {
if (form.$valid === true) {
form.$setPristine();
scope.formSubmitted = false;
} else {
scope.formSubmitted = true;
}
});
});