0

次の例のように、ノックアウト カスタム バインディングを作成したいと思います (計算されたオブザーバブルを追加できるようにするため)。

var mapping = {
    'children': {
        create: function(options) {
            return new myChildModel(options.data);
        }
    }
}

問題は、私の viewModel が実際の配列 (ルート) であることです。この例では、'children' のような子プロパティではありません。だから私は次のようなものが必要です:

var mapping = {
    'root': {
        create: function(options) {
            return new myChildModel(options.data);
        }
    }
}

どうすればそれを達成できますか?ありがとうございました。

4

1 に答える 1

0

プラグインの通常のマッピング機能を使用してそれを行うことはできませんか?

var viewmodel = ko.observableArray([]);
ko.utils.arrayForEach(options.data, function(data) {
    viewmodel.push(new myChildModel(data));
}

個人的には、ビュー モデルを配列にするのではなく、配列をビュー モデルのプロパティにするつもりですが、将来さらにプロパティを追加したい場合に、より柔軟に対応できます。

于 2013-04-23T12:23:13.253 に答える