在我的指令中,我有一些看起来像这样的东西:
myApp.directive('myDirective', function(s1, s2, s3) {
return {
restrict:'E',
link: function($scope,) {
s1.then(function(data) {
$scope.s1 = data;
s2.then(function(data) {
$scope.s2 = data;
s3.then(function(data) {
$scope.s3 = data;
});
});
});
},
templateUrl: '/static/partials/some-file.html'
}
});
上面的代码按照我想要的方式工作和运行。然而,它看起来很难看,我宁愿做一些更清洁的事情。当我尝试使用Promise.all([s1, s2, s3]
然后将结果存储到$scope
并将其呈现为some-file.html
时,它不起作用。
答案 0 :(得分:0)
您的评论显示了问题:
Promise.all([s1, s2, s3])
.then(function(response) {
$scope.s1 = s1;
$scope.s2 = s2;
$scope.s3 = s3;
});
响应是如何映射的:
Promise.all([s1, s2, s3])
.then(function(response) {
$scope.s1 = response[0];
$scope.s2 = response[1];
$scope.s3 = response[2];
});
但我建议使用$q.all
作为抢劫建议。