Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 在EmberJS中对列表进行排序并在视图中反映_Ember.js - Fatal编程技术网

Ember.js 在EmberJS中对列表进行排序并在视图中反映

Ember.js 在EmberJS中对列表进行排序并在视图中反映,ember.js,Ember.js,我有一个计算属性,它应该像这样进行排序和筛选: sortedFilteredChildren: function() { console.log("sortedFilteredChildren()"); var filtered = this.get("children").filterProperty("archived",false); var sorted = filtered.slice().sort(function(a,b){

我有一个计算属性,它应该像这样进行排序和筛选:

sortedFilteredChildren: function() {
        console.log("sortedFilteredChildren()");
        var filtered = this.get("children").filterProperty("archived",false);
        var sorted = filtered.slice().sort(function(a,b){
            return a.get("order") - b.get("order");
        });
        return sorted;
}.property("@each.order","@each.parent_id","EpicApp.filterOptions.viewArchived").cacheable(),    
我将该属性用作CollectionView的数据源

如果我更改了其中一个子项的order属性,则不会重新计算该属性。换句话说,在执行以下操作后,我看不到console.log行出现:

child.set("order",10);

知道我做错了什么吗?

终于明白了

我认为@each应用于返回值。即,如果返回值中对象的任何订单属性发生更改,则重新计算

但这是不正确的@每个应用于计算属性所在的对象

所以要做我需要的,我必须做一个“children.@each.order”

sortedFilteredChildren: function() {
    console.log("sortedFilteredChildren()");
    var filtered = this.get("children").filterProperty("archived",false);
    var sorted = filtered.slice().sort(function(a,b){
        return a.get("order") - b.get("order");
    });
    return sorted;
}.property("children.@each.order","children.@each.parent_id","EpicApp.filterOptions.viewArchived").cacheable(),