2014-10-01 156 views
0

我正在使用Firebase存儲我的數據,我知道Firebase將數據存儲爲對象而不是數組。我已經解決了這個問題,並有其他過濾器的工作,但是當我嘗試在我的ng-repeat中使用「orderBy:'date'」時,它不起作用。這裏是標記:AngularJS orderBy日期過濾器無法正常工作使用Firebase

<div ng-repeat="event in events | limitTo:10 | filter:tfilter | orderBy: 'date'> 
    <div class="row"> 
    <div class="col-md-6"> 
     <h4>{{event.date | amDateFormat:'MMMM Do'}}</h4> 
    </div> 
    <div class="col-md-6"> 
     <h4>{{event.name}}</h4> 
    </div> 
    </div> 
</div> 

我也嘗試使用orderBy:'event.date',但這也沒有工作。任何人都知道解決方案

+0

取而代之的是什麼?你有沒有可用的例子? – 2014-10-01 23:47:36

+0

如果'events'直接從'$ firebase(xxx)'返回,那麼事件的類型就是一個字典。你需要將它平鋪爲一個數組,並且過濾器將工作。 – zsong 2014-10-01 23:48:36

回答

0

想出來 - 超級簡單。在我的mainSvc中,我返回的是對象而不是數組。下面的數組是對象。

angular.module("zenCityApp") 
.factory("mainSvc", function ($rootScope, $log, $firebase) { 

    var ref = new Firebase("https://zencity.firebaseio.com/events"); 

    var sync = $firebase(ref); 

    var getEvents = function() { 
    return sync.$asArray(); 

    }; 

    var addEvent = function (singleEvent) { 
    ref.push(singleEvent); 
    }; 

    return { 
    getEvents: getEvents, 
    addEvent: addEvent 
    } 

});