【发布时间】:2013-09-10 16:37:41
【问题描述】:
我知道 Angular 可以处理来自控制器的承诺。例如:
function MyCtrl($scope) {
$scope.myvar = getDeferredPromise();
}
主要的角度摘要循环优雅地处理这个问题,将延迟函数最终返回的任何值分配给 myvar。
然而,虽然 $http.get() 方法返回了一个承诺,但我无法让它以这种方式工作。例如:
function MyCtrl($scope, $http) {
$scope.myvar = $http.get('/url');
}
get 方法返回的 'promise' 有一个 success 方法,该方法采用一个函数,该函数分配了希望分配给 myvar。
但是,它也有一个 then 方法——但它给出了整个响应对象——而不仅仅是那个数据部分!这似乎最终被分配给 myvar!
这个小提琴可能会有所帮助:http://jsfiddle.net/QKnNC/1/
我在这里做错了吗?或者这是某种“设计”?
【问题讨论】:
-
我猜这是设计使然:Promise 通常只用一个值实现,因此您需要传递整个响应对象以使其可访问。
标签: javascript angularjs promise angularjs-service