处理多个承诺时的最佳方法
Best aproach when dealing with mutliple promisses
我在互联网上查找,但没有看到明确的答案。所以这是我的情况:
代码是head写的,不完整请见谅
我有一个看起来像这样的页面:
<div ng-controller="myController">
<my-customer my-callback="directiveCallback(item)" />
</div>
然后我有一个如下所示的脚本:
var app = angular.module('myApp', []);
app.controller('myController', ['$scope', 'apiService', function($scope, apiService) {
apiResponse = apiService.getAll('myRepo');
apiResponse.then(function(d){
$scope.data = d;
})
$scope.directiveCallback = function(item) {
// do stuff with $scope.data
}
}])
.directive('myCustomer', function() {
return {
scope: {
myCallback:'&'
},
template: 'Name: {{customer.name}} Address: {{customer.address}}'
};
});
事情是服务承诺解决和 returns 一些数据。
指令控制器正在调用另一个服务 returns 一些数据,并在处理完它接收到的数据后触发回调。
当他登陆回调函数时,该项目附加到 $scope.data。
问题是在填充 $scope.data 之前触发了回调。
我目前解决了这个问题,以便通过直接参数将回调包装在 $timeout 中,并具有可设置的延迟。
这是正确的方法还是有更好的方法?
嗯,这不是很简单吗:
$scope.directiveCallback = function(item) {
apiResponse.then(function() {
console.log($scope.data); // always updated
// do whatever
})
}
我在互联网上查找,但没有看到明确的答案。所以这是我的情况:
代码是head写的,不完整请见谅 我有一个看起来像这样的页面:
<div ng-controller="myController">
<my-customer my-callback="directiveCallback(item)" />
</div>
然后我有一个如下所示的脚本:
var app = angular.module('myApp', []);
app.controller('myController', ['$scope', 'apiService', function($scope, apiService) {
apiResponse = apiService.getAll('myRepo');
apiResponse.then(function(d){
$scope.data = d;
})
$scope.directiveCallback = function(item) {
// do stuff with $scope.data
}
}])
.directive('myCustomer', function() {
return {
scope: {
myCallback:'&'
},
template: 'Name: {{customer.name}} Address: {{customer.address}}'
};
});
事情是服务承诺解决和 returns 一些数据。 指令控制器正在调用另一个服务 returns 一些数据,并在处理完它接收到的数据后触发回调。
当他登陆回调函数时,该项目附加到 $scope.data。
问题是在填充 $scope.data 之前触发了回调。 我目前解决了这个问题,以便通过直接参数将回调包装在 $timeout 中,并具有可设置的延迟。
这是正确的方法还是有更好的方法?
嗯,这不是很简单吗:
$scope.directiveCallback = function(item) {
apiResponse.then(function() {
console.log($scope.data); // always updated
// do whatever
})
}