【问题标题】:Need to Loop thru a firebaseArray and returning 1 object需要通过 firebaseArray 循环并返回 1 个对象
【发布时间】:2016-05-28 22:51:59
【问题描述】:

我正在尝试访问在 firebase 数组中返回的数据并返回其中 1 个对象 - 我的 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

【问题讨论】:

    标签: angularjs ionic-framework firebase


    【解决方案1】:

    如果您想在 AngularJS 视图中使用 Firebase 中的单个对象,请使用 $firebaseObject。所以:

    getNewsItems: function(){
        return $firebaseArray(newsRef);
    },
    getNewsDetail: function(newsID){
        return $firebaseObject(newsRef.child(newsID);
    }
    

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

    【讨论】:

    • 谢谢弗兰克,我认为这与我想要的很接近,但并不准确 - 我已经添加了我的 firebase 布局,所以它可能更有意义。例如。如果我传入 2 的 id,我希望返回列表中的最后一个 newsItem。
    猜你喜欢
    • 2015-07-15
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 2012-01-03
    • 1970-01-01
    相关资源
    最近更新 更多