0

如果我不想像这样直接分配我的收藏怎么办:

$scope.items = angularFireCollection(ref);

因为我需要在收到对象后在回调中访问它:

angularFireCollection(ref, function(items) {
  angular.forEach(items, function(item){
    angular.forEach(item.tags, function(tag){
      $scope.allTags.push(tag);
    });    
  });
  $scope.items = items;
});

服务是否存在回调方法angularFireCollection

4

2 回答 2

1

是的,来自关于显式绑定的文档:

angularFireCollection 接受一个可选的第二个参数 - 一个回调,当从服务器加载初始数据时将调用该回调。回调将提供一个Firebase 快照作为唯一参数。

因此,您可以在回调中调用另一个函数,该函数将直接迭代$scope.items以加载$scope.allTags数组,或者像现在一样做一些事情,但使用快照来代替(例如,使用forEach()函数)。

于 2013-11-13T05:09:16.350 回答
0

http://jsfiddle.net/3WcWu/1/

用作.val()回调返回的对象的扩展以访问其值。

$scope.items = angularFireCollection(ref, function(i){
    console.log(i.val());
});
于 2013-11-14T14:48:05.867 回答