AngularJS不断调用$http
我对AngularJS非常陌生(新4个小时),我正在尝试让http调用正常工作,但它似乎是Angular一次又一次地调用http get请求。我确信这是因为我的方法是错误的。这就是我想做的 我的控制器文件片段Web服务运行良好。我正在node.js应用程序中运行此功能AngularJS不断调用$http,angularjs,Angularjs,我对AngularJS非常陌生(新4个小时),我正在尝试让http调用正常工作,但它似乎是Angular一次又一次地调用http get请求。我确信这是因为我的方法是错误的。这就是我想做的 我的控制器文件片段Web服务运行良好。我正在node.js应用程序中运行此功能 function peopleController($scope,$http){ $scope.getPeople = function(){ $scope.revar = {}; $http.get('/l
function peopleController($scope,$http){
$scope.getPeople = function(){
$scope.revar = {};
$http.get('/location/-79.18925/43.77596').
success(function(data){
console.log(data);
$scope.revar = data;
});
}
}
My list.html文件
<div ng-controller="busController">
<div class="blueitem">{{getPeople()}}</div>
</div>
{{getPeople()}}
我知道我不会看到结果,因为我不会在getPeople方法中重复任何内容,但我想看到在chrome中看到的结果的日志输出,但由于angular不断反复调用该url方法,因此我想查看一百万次。相反,它一直在打
如何让AngularJS只返回一次响应?您遇到的问题与AngularJS的工作方式有关,更准确地说,与它如何决定模板需要刷新有关。基本上AngularJS将根据对模型的脏检查来刷新模板。我不想在这里讨论太多细节,因为有一篇很好的帖子解释了它(),但简而言之,它会随着模型的变化而不断变化,直到它稳定下来(不能再观察到模型的变化)。在您的例子中,模型永远不会稳定,因为每次调用
getPeople()
方法都会得到新对象
正确的解决方法是(在可能的解决方案中):
然后,在模板中:
<div ng-controller="busController">
<div class="blueitem">{{people}}</div>
</div>
{{人}
上述模板将在数据到达时自动刷新
再一次,这只是一个可能的解决方案,因此我建议遵循AngularJS教程,以更好地了解可能的情况:您遇到的问题与AngularJS的工作方式有关,更准确地说,与它决定模板需要刷新的方式有关。基本上AngularJS将根据对模型的脏检查来刷新模板。我不想在这里讨论太多细节,因为有一篇很好的帖子解释了它(),但简而言之,它会随着模型的变化而不断变化,直到它稳定下来(不能再观察到模型的变化)。在您的例子中,模型永远不会稳定,因为每次调用
getPeople()
方法都会得到新对象
正确的解决方法是(在可能的解决方案中):
然后,在模板中:
<div ng-controller="busController">
<div class="blueitem">{{people}}</div>
</div>
{{人}
上述模板将在数据到达时自动刷新
再一次,这只是一个可能的解决方案,所以我建议遵循AngularJS教程来更好地了解可能的情况:两件事。欢迎使用angularjs,它是一个很棒的框架。你可能不应该在网页上给getPeople打电话。相反
function peopleController($scope,$http){
var getPeople = function(){
$scope.revar = {};
$http.get('/location/-79.18925/43.77596').
success(function(data){
console.log(data);
$scope.revar = data;
});
}
getPeople();
}
然后是html
<div ng-controller="busController">
<div class="blueitem">{{revar|json}}</div>
</div>
{{revar | json}}
此外,我建议您研究ngResource,特别是如果您正在处理CRUD类型的应用程序
希望这有帮助
--dan有两件事。欢迎使用angularjs,它是一个很棒的框架。你可能不应该在网页上给getPeople打电话。相反
function peopleController($scope,$http){
var getPeople = function(){
$scope.revar = {};
$http.get('/location/-79.18925/43.77596').
success(function(data){
console.log(data);
$scope.revar = data;
});
}
getPeople();
}
然后是html
<div ng-controller="busController">
<div class="blueitem">{{revar|json}}</div>
</div>
{{revar | json}}
此外,我建议您研究ngResource,特别是如果您正在处理CRUD类型的应用程序
希望这有帮助
--丹谢谢丹,这真的很有帮助。事实上,你和pkozlowski的方法都奏效了。非常感谢。谢谢你,丹,这真的很有帮助。事实上,你和pkozlowski的方法都奏效了。非常感谢。感谢您的及时回复。这真的帮了我很大的忙。既然你先回答了,我就给你答案。谢谢你的及时回复。这真的帮了我很大的忙。既然你先回答了,我就给你答案。