2014-10-20 49 views
0

EmberJS forums問題一起

交叉貼在我的應用程序,我需要通過一個或多個屬性來篩選名單,然後由一個或多個屬性的過濾結果進行排序。我已經通過正常{{#each item in sortedContent}}

試圖在該列表編輯某一項目時,我的問題跟

sortProperties: ['manufacturer:asc', 'modelName:asc', 'series:asc'], 

filteredContent: Ember.computed.filter('model', function (model) { 
    return model.get('isActive'); 
}).property('[email protected]'), 

sortedContent: Ember.computed.sort('filteredContent', 'sortProperties').property('filteredContent') 

模板結合sortedContent做到了這一點。編輯列表中的前兩項很好 - 更改字段顯示列表中的更改沒有問題。編輯低於前兩項的任何內容時出現問題。任何更改都會反映在正確的項目以及列表中的其他項目上。

I've created a jsbin that shows the issue。我不確定我是否在過濾/排序/綁定方面錯過了一些東西,或者這是Ember中的錯誤。

回答

1

我修正了它,可能是您使用過濾器/排序錯誤的方式。

你的固定和簡化控制器:

App.ApplicationController = Ember.ArrayController.extend({ 
    sortProperties: ['manufacturer', 'modelName', 'series'], 
    filteredContent: function() { 
    return this.get('arrangedContent').filterBy('isActive'); 
    }.property('@each.isActive') 
}); 

我也映射模板循環遍歷filteredContent而不是sortedContent

最後兩個對象有相同的ID(不會造成問題,但仍.. )

工作jsbin

+0

這很接近但我的一個要求是能夠按不同方向排序多個屬性。我使用[Balint Erdi的博客文章](http://balinterdi.com/2014/03/05/sorting-arrays-in-ember-dot-js-by-various-criteria.html)執行排序。你的例子確實有用,但並不像我需要的那樣排序。 – ultimatemonty 2014-10-20 15:31:44

+0

它在js bin上工作: 'sortProperties:['manufacturer:desc','modelName','series']' – 2014-10-20 15:35:01

+0

gah你是對的!我嘗試了多種排序,但一定錯過了一些東西。謝謝! – ultimatemonty 2014-10-20 15:42:14