好了,所以我有一個控制器,它的模型設置如下:灰燼PromiseArray sortBy
App.MyModel = DS.Model.extend({
myOtherProperty: attr(),
mySortKey: attr(),
mySubCollection: function() {
return this.store.filter('MyOtherModel', function (myOtherModel) {
//Some basic filtering logic (it's actually more complex than this)
return myOtherModel.get('someProperty') == this.get('myOtherProperty');
});
}.property('myOtherProperty')
})
實際的過濾功能並不重要 - 重要的是,該「mySubCollection」計算屬性返回DS.PromiseArray對象。上述模型的控制器的類型是'Ember.ObjectController',因爲它只顯示一個對象。
顯示此屬性的模板使用的{{每個}}幫手這樣做:
MyTemplate的:
{{#each mySubCollection}}
{{view App.MyView}}
{{/each}}
現在 - 我需要排序的「mySortKey」這個承諾數組屬性按降序排列。我怎樣才能做到這一點?該文檔說DS.PromiseArray從Ember.Array擴展,但在'mySubCollection'的計算屬性的末尾添加'sortBy('mySortKey:desc')'會導致它斷開而不工作 - 這很有意義,因爲我會在一個承諾而不是數組上調用'sortBy'。
我看了一堆不同的想法,不斷提出的是切換到使用ArrayController。我可以做到這一點,但這並不理想,因爲它在一個非常簡單的設置上增加了一些複雜性,這些設置已經很好(除了排序)。
有什麼想法?
我喜歡這個想法,這是一個很好的展示mixins的方式......謝謝!我會試一試,如果它有效,我會給你答案 –
作品像一個魅力 - 謝謝! –
這仍然是已知的做事方式嗎? – Anthony