我有以下代码:
<form class="form"
data-ng-submit="modalSubmit(modal.data)"
id="modal-body"
name="modalForm"
novalidate>
Run Code Online (Sandbox Code Playgroud)
这有效,当我点击提交类型的按钮时,调用modalSubmit函数.
但是我想在我的控制器中执行此操作:
$scope.modalForm.$setPristine();
Run Code Online (Sandbox Code Playgroud)
但它给出了一个错误说:
has no method '$setPristine'
Run Code Online (Sandbox Code Playgroud)
我怎样才能将表格设置为原始状态?我确实尝试添加,data-ng-form="modalForm"但后来我收到一条消息,说明重复指令名称的效果.
我尝试将表单元素更改为DIV,但单击提交按钮不会调用该函数
这是一个示例(从另一个用户修改),显示我正在尝试做的是将值设置为pristine:
你没有在那里做错任何事情,唯一的问题是你引用的旧版角度$setPristine()不是一个特征.$setPristine()在1.1.+中添加,所以引用更新版本的角度,你很高兴.使用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;
}
});
}
Run Code Online (Sandbox Code Playgroud)