【发布时间】:2013-10-29 17:04:24
【问题描述】:
我有一个使用 $resource 的简单控制器:
var Regions = $resource('mocks/regions.json');
$scope.regions = Regions.query();
我在指令中使用这个控制器(在链接函数中)
var regions = scope.regions;
但是区域是未定义的。调用是异步的非常合乎逻辑。
我的问题是如何等待结果和区域成为包含所有数据的数组?
UPDATE :
这里是指令的定义
app.directive('ngMap', function() {
return {
restrict: 'EA',
replace: 'true',
scope: {
},
template: '<div id="map"></div>',
controller: 'AccordMapCtrl',
link: function(scope, element, attrs) {
var regions = scope.regions;
console.log(regions);
for (var region in regions) {}
};
});
【问题讨论】:
-
我遇到了同样的问题,并在链接函数中使用了@AndreyPushkarev 的解决方案。基本上链接函数中的所有逻辑都在
$promise.then(function(result){...});里面。 -
只是为了确保我没有误解 - 解决此问题的“回调”方法在技术上与“承诺”方法一样有效,对吗? (我更喜欢 Promise 的语法,但在我看来,回调在技术上可以完成同样的事情)
-
是的,您可以选择 $promise.then 或简单的回调。我猜 $promise 方法更“语义化”
标签: angularjs promise angular-resource