ノックアウト コンポーネントのリストがあります
<!-- ko foreach: myComponents -->
<div data-bind="component: $data"></div>
<!-- /ko-->
コンポーネント定義の監視可能な配列を作成する方法は次のとおりです。これは期待どおりにレンダリングされます。
createComponents = function(jsonData) {
var components;
components = _.map(jsonData, function( jsonItem ) {
switch (jsonItem.type) {
case 0:
return {
name: "component-type-0",
params: jsonItem
};
case 1:
return {
name: "component-type-1",
params: jsonItem
};
default:
throw new Error("No case for type " + jsonItem.type);
});
this.myComponents( components );
};
ただし、それらを並べ替える方法がわかりません。私の配列には、コンポーネントの作成時に作成されたビューモデルはありませんname
。jsonData
簡単に再利用できるように、配列内の項目をコンポーネントのままにしておきたいと思います。
そのプロパティに基づいてソートできるように、作成されたビューモデルにアクセスする方法はありますか?