Tho*_*ons 73 promise angularjs angular-resource
我有一个使用$ resource的简单控制器:
var Regions = $resource('mocks/regions.json');
$scope.regions = Regions.query();
Run Code Online (Sandbox Code Playgroud)
我在指令中使用这个控制器(在链接函数中)
var regions = scope.regions;
Run Code Online (Sandbox Code Playgroud)
但是地区是不确定的.调用是异步的,这是相当逻辑的.
我的问题是如何才能等待结果和区域成为包含所有数据的数组?
UPDATE :
Run Code Online (Sandbox Code Playgroud)
这里是指令的定义
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) {}
};
});
Run Code Online (Sandbox Code Playgroud)
小智 184
如果你想使用异步方法,你需要使用$ promise的回调函数,这里是例子:
var Regions = $resource('mocks/regions.json');
$scope.regions = Regions.query();
$scope.regions.$promise.then(function (result) {
$scope.regions = result;
});
Run Code Online (Sandbox Code Playgroud)
Mah*_*bub 36
如果您希望在资源调用中获得承诺,则应该使用
Regions.query().$q.then(function(){ .... })
更新:在读取的当前版本中更改了promise语法
Regions.query().$promise.then(function(){ ..... })
那些被投票的人不知道它是什么以及谁首先将这个承诺添加到资源对象中.我在2012年末使用此功能 - 是2012年.
小智 20
你也可以这样做:
Regions.query({}, function(response) {
$scope.regions = response;
// Do stuff that depends on $scope.regions here
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
99628 次 |
最近记录: |