我正在使用Angularjs 1.5版,我在html中指定了一个表单,如下所示:
<div class="row" ng-show="showForm">
<form class="form-horizontal" name="myForm" novalidate role="form">
</form>
</div>
在相应的控制器中,我有一个重置表单并调用pristine的函数:
$scope.myForm.$setPristine();
到现在为止一切正常。
然后我尝试使用blockUI(https://github.com/McNull/angular-block-ui) 通过将上面的div更改为:
<div class="row" ng-show="showForm" block-ui="myBlock">
所以唯一的补充是:block-ui =“myBlock”
但是,当控制器代码运行时,我得到:
TypeError:无法读取未定义的属性'$ setPristine'
调试时我发现表单对象不存在!删除block-ui =“myBlock”时,一切正常。
有什么想法吗?
提前致谢
答案 0 :(得分:0)
尝试以下内容:
function MyCtrl($scope, $timeout, blockUI) {
$scope.form = {};
$scope.submit = function() {
var myBlockUI = blockUI.instances.get('myForm');
$scope.form.myForm.$setPristine();
myBlockUI.start();
$timeout(function() {
// Stop the block after some async operation.
myBlockUI.stop();
}, 3000);
};
}
并查看:
<form name="form.myForm" novalidate ng-submit="submit()" block-ui="myForm">
<input type="text">
<button>
Submit
</button>
</form>
我在undefined
上使用$scope
表单时遇到了与您相同的问题,但在SO上使用其他对象form
时发现了这些技巧。 Plunk here。