2014-06-17 2 views
3

Ember 데이터 저장소에있는 모델의 수를 제한하는 방법이 있습니까? 이것에 대한 유스 케이스는 채팅 앱입니다. 브라우저의 메모리를 천천히 먹어서는 안되며 점점 더 많은 모델이 가득 찼습니다. 상점에 100 개가 넘는 상점이있는 경우 가장 오래된 모델이 삭제되는 것이 가장 바람직합니다.Ember.js - 상점의 모델을 제한 하시겠습니까?

답변

4

저장소에있는 유형의 모든 레코드를 볼 수 있으며 원하는 것보다 많은 레코드가있을 때마다 삭제할 ​​수 있습니다. 이것은 실제로 모든 컨트롤러/라우트에 살 수 있습니다 ...

App.MessagesRoute = Em.Route.extend({ 
    allMessages: function(){ 
    return this.store.all('message'); 
    }.property(), 
    messageCount: Em.computed.alias('allMessages.length'), 
    watchSize: function(){ 
    var cnt = this.get('messageCount'), 
     messages; 
    if(cnt>100){ 
     messages = this.get('allMessages').sortBy('messageDate').toArray().slice(100); 
     messages.forEach(function(message){ 
     message.deleteRecord(); 
     }); 
    } 
    }.observes('messageCount') 
}); 
관련 문제