我有以下代码:
<form class="form"
data-ng-submit="modalSubmit(modal.data)"
id="modal-body"
name="modalForm"
novalidate>
这是有效的,当我点击一个提交类型的按钮时,就会调用 modalSubmit 函数。
但是我想在我的 Controller 中做到这一点:
$scope.modalForm.$setPristine();
但它给出了一个错误说:
has no method '$setPristine'
如何将表单设置为原始状态?我确实尝试添加
data-ng-form="modalForm"
但后来我得到一条消息,说明重复指令名称的影响。
我尝试将表单元素更改为 DIV,但随后单击提交按钮不会调用
功能
这是一个示例(从另一个用户修改),显示了我正在尝试将值设置为原始值的操作:
plnkr.co/edit/LNanJdAggMLIgxii0cfv?p=preview
最佳答案
您在那里没有做错任何事情,唯一的问题是您引用的是旧版本的 angular,其中 $setPristine()
不是特色。 $setPristine()
已在 1.1.+ 中添加,因此请引用较新版本的 angular,您就可以开始使用了。查看它在 this plunk 中工作,使用 1.2.+。
如果您无法升级,那么一个肮脏的解决方法是遍历表单中的所有输入并手动设置它们的 $dirty 和 $pristine 值:
$scope.mp = function() {
$scope.mainForm.$pristine=true;//clean main form
$scope.mainForm.$dirty=false;
angular.forEach($scope.mainForm,function(input){//clean all input controls
if (input !== undefined && input.$dirty !== undefined) {
input.$dirty=false;
input.$pristine=true;
}
});
}
关于angularjs - 我如何进行验证并使用 ..$setPristine();以 AngularJS 形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22088904/