我使用的是 Angularjs 版本 1.5,我在 html 中指定了一个表单,如下所示:
<div class="row" ng-show="showForm">
<form class="form-horizontal" name="myForm" novalidate role="form">
</form>
</div>
在相应的控制器中,我有一个重置表单并调用原始的函数:
$scope.myForm.$setPristine();
到目前为止,一切正常。
然后我尝试使用块UI(https://github.com/McNull/angular-block-ui)通过将上述div 更改为:
<div class="row" ng-show="showForm" block-ui="myBlock">
所以唯一的补充是:block-ui="myBlock"
但是,当控制器代码运行时,我得到:
类型错误: 无法读取未定义的属性"$setPristine"
调试时,我看到表单对象不存在!删除block-ui="myBlock"时,一切正常。
有什么想法吗?
提前致谢
尝试这样的事情:
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
发现了这些技巧。扑通扑通地。