在我的应用中,我需要按一个或多个属性过滤列表,然后按一个或多个属性对过滤后的结果进行排序。我用
完成了这个sortProperties: ['manufacturer:asc', 'modelName:asc', 'series:asc'],
filteredContent: Ember.computed.filter('model', function (model) {
return model.get('isActive');
}).property('model.@each.isActive'),
sortedContent: Ember.computed.sort('filteredContent', 'sortProperties').property('filteredContent')
模板通过普通sortedContent
{{#each item in sortedContent}}
尝试编辑该列表中的项目时出现问题。编辑列表中的前两项很好 - 更改字段会显示列表中的更改而不会出现任何问题。编辑低于前两项的任何内容时出现问题。任何更改都会反映在正确的项目以及列表中的其他项目中。
I've created a jsbin that shows the issue。我不确定我是否只是遗漏了我如何过滤/排序/绑定或者这是否是Ember中的错误。
答案 0 :(得分: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