使用 Angularjs blockUI 时未定义的表单对象



我使用的是 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发现了这些技巧。扑通扑通地。

相关内容

  • 没有找到相关文章

最新更新