关于这个blog,我读到了:
...请注意,我们正在为范围存储承诺。这与实际列表不同。 AngularJS会自动将其解析为实际返回的列表,并将其显示在生成的HTML中。
这是否意味着我可以这样做:
angular.module('app', []).service('Data', function($q) {
return {
getItems: function() {
return $q.when(['cat', 'dog']);
}
}
})
.controller('MyController', function(Data, $scope) {
$scope.items = Data.getItems();
});
而不是这个?
.controller('MyController', function(Data, $scope) {
Data.getItems().then( function(result) {
$scope.items = result;
});
});
如果是,那么它的文档在哪里?我搜索过文档无济于事。
我尝试了plunkr,却无处可去。
我还发现this SO question提到了 async 指令。同样,我很难找到关于此的任何文档。
我是否将Angular1与Angular2混淆了?
答案 0 :(得分:1)
也许?如果您愿意,可以像这样访问plunkr中的值:
i in items.$$state.value
这是一个更新的plunkr,它将通过超时模拟http请求:
答案 1 :(得分:1)
你曾经能够用Angular 1.2做到这一点(这似乎是一个错误)。 1.3和更新版本要求您在绑定之前解包承诺。
修改:此问题可能重复Angular JS: how to bind to promises