【发布时间】:2015-11-17 16:50:01
【问题描述】:
我的问题和这里的问题很相似:How to pass a value to an AngularJS $http success callback
根据 Angular.js
不推荐使用 $http 旧式承诺方法成功和错误。请改用标准 then 方法。
那么如何使用 .then 来做类似的事情呢?
我的代码在我的服务中被这样的东西分散了
fetchFromAPI: function(key) {
return $http.jsonp(...);
}
这是我的控制器
for (var i = 0; i < units.length; i++){
Service.fetchFromAPI(i)
.then(function(response) {
console.log(i);
}, function(response) {
console.log(response);
});
}
但是控制台的输出是相同的数字,因为在返回任何调用之前执行了 for 循环,我无法绕开脑袋来编写类似于 .success 示例的上述内容,所有我的尝试给我一个错误,我的控制器不是一个函数。
Jim Horng 发布的解决方案是
$http.get('/plugin/' + key + '/js').success((function(key) {
return function(data) {
console.log(key, data);
}
})(key));
【问题讨论】:
标签: javascript angularjs callback