我正在尝试将来自多个来源的数据读入 AngularJS 控制器,就像这样 -
var Controller = function ($scope, $http) {
var load = {
somekey: "/data/a.json",
someotherkey: "/data/b.json",
yetanotherkey: "http://restapi"
}
for (var i in load) {
$http({
url: load[i],
method: 'GET'
}).success(function (data, status, headers, config) {
$scope[i] = data; // <<---- this does not point to the right value of i
}).error(function (data, status, headers, config){
$scope[i] = "Error getting content for " + i;
});
}
}
然而,这段代码似乎不起作用,因为i
当回调仍在执行时,变量的内容在循环中发生了变化(即 HTTP 请求没有在遍历字典中所有值的时间内完成),所以只有的最后一个值i
已更新,所有其他值均未使用。
我该如何解决这个问题?