为什么成功或错误回调函数无法正确执行angularjs中的$ http.post

时间:2016-02-08 04:24:24

标签: javascript jquery angularjs http angularjs-scope

我尝试使用以下代码与服务器通信。

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<div class="container block-1">
  <ul>
    <li class="col-sm-12 col-md-6 clear-left">List Item 1</li>
    <li class="col-sm-12 col-md-6 clear-left">List Item 2</li>
    <li class="col-sm-12 col-md-6 clear-left">List Item 3</li>
    <li class="col-sm-12 col-md-6 clear-right">List Item 4</li>
  </ul>
</div>

<div class="container block-2">

  <ul class="col-sm-12 col-md-6">
    <li>List Item 1</li>
    <li>List Item 2</li>
    <li>List Item 3</li>
  </ul>

  <ul class="col-sm-12 col-md-6">
    <li>List Item 4</li>
  </ul>

</div>

但我有线行为。链接每次都被点击,我在那里放了一个调试器,但是在完成请求之前,我的页面得到了刷新,使得我的模型为空而没有输入成功或错误回调。我对承诺对象了解一点但是没有意义。我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

我的猜测是你没有将$scope.Save()绑定到ng-submit的{​​{1}}并让它由提交按钮触发,或者你没有关注表单的文档< / p>

如果表单设置为:

<form>

你的<form name="formScopeName" ng-submit="Save()" novalidate> 应该可以正常工作。但是,如果你有$http设置表单角度解释,你想要提交没有ajax nd使用默认浏览器进程。因此,请确保action属性不存在。

另请注意,没有理由自己对数据进行字符串化。这将由内部action自动完成。这可能导致错误

您还可以传入$http以获得额外保护,然后阻止默认。但一般来说,这并不是必需的。

$event

JS

ng-submit="Save($event)"