1

このようなjsonとしてサーバーから来るビューモデルがあります

{
    Project: {
        Items: {
            ItemA: {
                Tags: [
                    ...
                ]
            },
            ItemB: ...
        }
    }
}

次に、このオブジェクトを knockout.mapping プラグインにバインドしますが、たとえば、マークアップで次のようなことができるように、ItemA に Marked オブザーバブルを追加する必要があります。

<ul data-bind="foreach: Project.Items">
    ...            
    <input type="checkbox" data-bind="checked: Marked">

createマッピング プロセスでオプションを使用してみました (ここに示すようにko.mapping create function, extend objectcreate )、メソッドをネストして Project.Items のオブジェクトを拡張する方法がわかりません。

私はこのようなマッピングを試みてきました

var mappings = {
    'Items': {
        create: function (options) {
            return $.map(options.data, function(obj) {
                return new Item(obj);
            });
        }
    }
}
4

1 に答える 1

2

解決策はこのバインディングでした

var mappings = {
    'Items': {
        create: function (options) {
            return new Item(options.data);
        }
    }
};
于 2012-06-14T00:13:27.853 に答える