我试图在击中控制器之前将promise数组解析为things
:
resolve:{
things: function($q){
var promises = [];
var titles = [];
var thingRef = ['a1', 'a2', 'a3'];
angular.forEach(thingRefs, function(thingRef){
promises.push($firebase(ref.child('things').child(thingRef).child('title')).then(function(title){
titles.push(title);
}));
});
$q.all(promises).then(function(){
return titles;
});
}
},
我在这里做错了什么?
最佳答案
我认为您需要:
return $q.all(promises).then(function(){
return titles;
});
因为没有外部返回,内部返回就不会到任何地方。
现在,
resolve.things
返回一个承诺,该承诺在解析后将包含一个标题数组。进行其他一些调整:
resolve:{
things: function($q){
var promises = [];
var thingRef = ['a1', 'a2', 'a3'];
angular.forEach(thingRefs, function(thingRef){
promises.push($firebase(ref.child('things').child(thingRef).child('title')));
});
return $q.all(promises);
}
}