$ .param($ scope.formData)导致无限循环

时间:2016-07-24 16:09:14

标签: angularjs

此代码创建一个无限循环:

$scope.signup = function() {
  $http({
    method: 'POST',
    data: $.param($scope.formData),
    url: '/api/signup',
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
  })
  .success(function(data) {
    console.log(data);
  })
}

HTML表单:

<div data-ng-controller="signup">
  <form id="signup-form" name="singup-form" method="post" data-ng-submit="signup()" novalidate>
    <div class="form-group">
      <label>Email</label>
      <input class="form-control" type="email" name="email" placeholder="Your email" data-ng-model="formData.email">
    </div>
    <div class="form-group p-tb-20">
      <button type="submit" class="btn btn-success">Signup</button>
    </div>
  </form>
</div>

当我致电$.param($scope.formData)时,问题就出现了。当我检查$scope.formData对象时,我注意到它包含对自身的循环引用,formData对象内的模型包含对控制器内部对象的引用,并且本身也是如此。因此,该函数在无限循环中运行。

我要做的就是提交一份表格。我做错了什么?

1 个答案:

答案 0 :(得分:0)

下面视图中的第一行应该是您直接调用此方法的控制器名称。

<div data-ng-controller=**"signup()"**>