2013-03-22 56 views
2

有沒有辦法重新加載整個店在燼數據?或者在裏面排序項目?燼數據如何重新加載/排序存儲記錄

它應該這樣:

  • 用戶點擊「添加」按鈕
  • 新的記錄添加
  • 店將提交
  • 用戶transmited到項目列示
  • 狀態
  • 他的新條目按正確順序排列

要做到這一點,我必須在model.didCreate中傳輸,它不應該是(它不是模型的角色!)或傳輸後刷新存儲。

任何人都有類似的問題?

我使用燼數據修訂12

編輯

我用:

Ember.run.later(this, function(){ 
    this.transitionToRoute('list');   
}, 500); 

爲了給店裏一段時間。但是,新的條目總是在列表的底部。我仍然需要重新加載整個商店或以某種方式排序。

編輯#2

所以我在這裏沒少返工。在我的模板我使用:

{{#each arrangedContent}} 

要使用排序的數據,在該路由我有:

App.AdsRoute = Ember.Route.extend({ 
    model: function(){ 
     return App.Ad.find(); 
    }, 
    sortProperties: ['id'] 
}); 

它不工作,雖然。看起來Route不是ArrayController。如果我從ArrayController延伸AdsController,它也不工作。

回答

1

灰燼ArrayControllers有排序的內容幾個選項:

http://emberjs.com/api/classes/Ember.ArrayController.html#property_sortAscending

您可以設置哪些字段排序和訂購您想要使用。當你使用這些,你會想要將視圖綁定到arrangeContent而不僅僅是普通的舊內容。

在我的應用我通常返回列表狀態記錄已持續後:

var observer, _this = this; 

observer = function(target, path) { 
    if (target.get(path) === 'saved') { 
    target.removeObserver(path, null, observer); 
    return _this.get('target.router').transitionTo('apps.index'); 
    } 
}; 

我不知道,如果商店有重加載機制(個體記錄做),但我可以更新這個迴應如果我找到答案。

+0

謝謝你的回答。事情是我正在使用燼數據。因此,例如'返回App.Ad.find();'在Route或Controller的model屬性中設置。我不能在這裏使用ArrayController。或者我? – greg 2013-03-25 11:39:03

+0

定義您的控制器時,您可以擴展ArrayController,而不僅僅是包含Sortable和Controller mixins的Controller。在你的例子中你會有:App.AdsController = Em.ArrayController.extend({sortProperties:['some_sort_field']}) – 2013-03-25 16:40:35