我有以下代码:
<form class="form" data-ng-submit="modalSubmit(modal.data)" id="modal-body" name="modalForm" novalidate>
这有效,当我点击提交类型的按钮时,调用modalSubmit函数.
但是我想在我的控制器中执行此操作:
$scope.modalForm.$setPristine();
但它给出了一个错误说:
has no method '$setPristine'
我怎样才能将表格设置为原始状态?我确实尝试添加data-ng-form =“modalForm”,但后来我得到了
一条消息,说明重复指令名称的效果.
解决方法
你没有做错任何事情,唯一的问题是你引用了旧版本的角度,其中$setPristine()不是一个特征. $setPristine()在1.1中添加.,所以参考一个更新版本的角度,你很高兴去.使用1.2查看它在
this plunk中的工作情况. .
如果你无法升级,那么一个肮脏的解决方法是遍历表单中的所有输入并手动设置$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; } }); }