我是 AngularJS 的新手,所以这实际上可能指向一些我还没有完全理解的核心概念。我正在尝试使用$q
&promise
对象将“远程数据”视为本地数据。直到未获取远程数据时,promise
对象才解析,但一旦解析,我希望视图中的所有相关数据绑定都得到更新。然而,下面的方法会导致一个无限循环,在这个循环中remote_total
被重复调用,即使之前的调用remote_total
导致了一个已解析的 promise 对象。
这是我的观点
<div ng-controller="MyController">
{{ remote_total() }}
</div>
这是控制器的相关片段:
function MyController($scope, $q, $http) {
$scope.remote_total = function() {
var def = $q.defer();
$http.get('/my/remote/service.json').success(function(data) {
def.resolve(data);
});
return def.promise;
}
}
首先,如果有人能向我解释为什么这会进入无限循环,那就太好了。其次,实现我想要做的事情的最佳方式是什么?