需要循环通过firebaseArray并返回1个对象

时间:2016-05-28 22:51:59

标签: angularjs ionic-framework firebase

我正在尝试访问firebase数组中返回的数据并返回其中一个对象 - 我的firebase数组返回3个对象,我希望能够遍历这3个对象并比较数据。真的不确定该怎么做:

它的函数getNewsDetail就是问题。

angular.module('news.services', ['ionic', 'firebase' ])
.factory('NewsItems', ['$firebaseArray', function($firebaseArray){
  var newsRef = new Firebase ('https://xxxx.firebaseio.com/newsitems');  

    var theNewsItems = [$firebaseArray(newsRef)];
    //alert($firebaseArray(newsRef).length)
    return{
    getNewsItems: function(){
        return $firebaseArray(newsRef);
    },
    getNewsDetail: function(newsID){
        for(var i = 0; i < theNewsItems.length; i++){
            if(theNewsItems[i].id == parseInt(newsID)){
                return theNewsItems[i];
            }
        }
        return null;
    }
    };

}]);

包含Firebase布局:

      newsitems
          -KIip4vmlntvakLoBAXA
                 Detail: "Detail Y"
                 Title: "Title X"
                 id: 0
          -KIipATckNU1WzEhkY9-
                Detail: "Come down and play with us"
                Title: "New Players Welcome"
                id: 1
          -KIipHiM2NYlh_BgG8UM
               Detail: "story 3"
               Title: "title 3"
               id: 2

1 个答案:

答案 0 :(得分:0)

如果要在AngularJS视图中使用Firebase中的单个对象,请使用getNewsItems: function(){ return $firebaseArray(newsRef); }, getNewsDetail: function(newsID){ return $firebaseObject(newsRef.child(newsID); } 。所以:

{{1}}

Firebase在加载数据方面非常智能,如果它已经在内存中,它就不会重新加载它。