我试图在击中控制器之前将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);
  }
}

10-06 05:48