我是AngularJS的新手(4小时新),我正在努力让http调用工作,但是看起来它似乎正在发生的是Angular一直反复调用http get请求.我确定这是因为我的做法是错误的.这就是我想要做的.
我的控制器文件的片段web服务工作正常.我在node.js应用程序中运行它
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;
});
}
}
Run Code Online (Sandbox Code Playgroud)
我的list.html文件
<div ng-controller="busController">
<div class="blueitem">{{getPeople()}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我知道我不会看到,因为在我的getPeople方法我不是returing什么结果 ,但我想看到的结果的日志输出我在Chrome未看到,但一万次和计数,因为角度保持在调用该URL方法和再次.相反,它一直在打击.
如何获得角度才能返回响应一次?
您遇到的问题与AngularJS的工作方式有关 - 更确切地说 - 它决定模板是否需要刷新.基本上AngularJS将基于对模型的脏检查来刷新模板.不想在这里详细介绍太多细节,因为有一篇很好的文章解释它(数据绑定如何在AngularJS中工作?)但简而言之,它将不断改变模型的变化,直到它稳定下来(模型中没有更多的变化可以被观察到).在您的情况下,模型永远不会稳定,因为每次调用getPeople()方法时都会获得新对象.
接近这个的正确方法是(基于可能的解决方案):
function peopleController($scope,$http){
$http.get('/location/-79.18925/43.77596').
success(function(data){
$scope.people = data;
});
}
Run Code Online (Sandbox Code Playgroud)
然后,在您的模板中:
<div ng-controller="busController">
<div class="blueitem">{{people}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)
提到的模板将在数据到达时自动刷新.
再一次,这只是一个可能的解决方案,所以我建议遵循AngularJS教程以更好地了解可能的内容:http://docs.angularjs.org/tutorial/
| 归档时间: |
|
| 查看次数: |
3371 次 |
| 最近记录: |