AngularJS $ http无限调用

时间:2016-03-29 19:11:51

标签: javascript angularjs node.js http mean-stack

有人可以解释为什么$ http请求向服务器发送无限数量的请求? 在我的应用程序中,此代码向服务器发送无限请求

<!DOCTYPE html>
<html>

<head>
  <title>clerf</title>
</head>

<body>
  <div id="main">
    <input type="text" id="name" />
    <input type="number" id="age" />
  </div>
</body>

</html>

但是,当我删除http请求时,只有一个请求被传递给服务器,如下所示:

(function(){
    var app = angular.module("GrahamsSocksProducts", ["ngCookies"]);
    app.controller("ProductsController", ["$controller", "$http", "$cookies", function($controller, $http, $cookies){
.
.
.
this.setCookie = function(){
        username = "Some random guy"
        alert(45)

        $http({
            method : "GET",
            url : "http://_____________",
            params : { username : username }
        }).then(function(){
            //do something
        })
    }

HTML:

.
.    
.
this.setCookie = function(){
        username = "Some random guy"
        alert(45)
}
.
.
.

我读过其他问题,例如: Infinite loop when trying to make Angularjs display a promise 他们回答了AngularJS如何允许双向数据绑定,但在这种情况下,当$ http代码被删除时,请求被发送一次,否则无限次。

1 个答案:

答案 0 :(得分:4)

每次运行摘要循环时运行表达式{{products.setCookie()}},这是很多。每次页面更改,单击,事件等。我不确定为什么你在视图本身上有这个表达式,但你需要把它放在别处