2017-06-02 18 views
1

私は理解できません - なぜthisですか?リストが観測可能な配列である場合はこのテーブルをソートできますが、thisの例では配列は観測可能な配列ではありません。観察可能物としてのアイテム - そうではありません。ノックアウトの観測リストのソート

アレイのすべてのアイテムを観測可能なものにした場合、どのようにソート作業を行うことができますか?この配列では

仕分け作品としては

this.allItems = ko.observableArray([ 
    {name:"Annabelle"}, 
    {name:"Vertie"}, 
    {name:"Charles"} 
]); 

を期待したが、これには

var ListSortModel = function() { 
this.allItems = ko.mapping.fromJS([ 
    {name:"Annabelle"}, 
    {name:"Vertie"}, 
    {name:"Charles"} 
]); 

答えて

1

あなたko.mappingプラグインは、あなたの内のオブジェクトをループし、プロパティobservableになりません。すなわち:

this.allItems = ko.observableArray([ 
    { name: ko.observable("Annabelle") }, 
    { name: ko.observable("Vertie") }, 
    { name: ko.observable("Charles") } 
]); 

のような比較は、今では本当に...あなたはそれらを呼び出すことによって取得することができ観測内部値を比較する必要があります行うことができない2、観察例、比較:obj.name()を。

マッピングバージョンでは、の代わりにa.name() < b.name()を使用する必要があります。

その他のメモ:おそらく使用する方が良いでしょう。return a.name().localeCompare(b.name());

関連する問題