我有一个使用 $resource 的简单 Controller :
var Regions = $resource('mocks/regions.json');
$scope.regions = Regions.query();
我在指令中使用此 Controller (在链接函数中)
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) {}
};
});
最佳答案
如果你想使用异步方法,你需要通过$promise使用回调函数,这里是例子:
var Regions = $resource('mocks/regions.json');
$scope.regions = Regions.query();
$scope.regions.$promise.then(function (result) {
$scope.regions = result;
});
关于AngularJS 资源 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19490560/