1

ノックアウト コンポーネントのリストがあります

  <!-- 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 );
  };

ただし、それらを並べ替える方法がわかりません。私の配列には、コンポーネントの作成時に作成されたビューモデルはありませんnamejsonData

簡単に再利用できるように、配列内の項目をコンポーネントのままにしておきたいと思います。

そのプロパティに基づいてソートできるように、作成されたビューモデルにアクセスする方法はありますか?

4

1 に答える 1