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

대신 무엇이 출력됩니까? 사용 가능한 예제가 있습니까? –

+0

'$ firebase (xxx)'에서 직접'events'가 리턴되면, 이벤트 유형은 단지 사전 일뿐입니다. 배열로 평면화해야 필터가 작동합니다. – zsong

답변

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 
    } 

}); 
관련 문제