2

モデル内のすべてのネストされたプロパティに対して作成コールバックを適用することから Knockout Mapping を停止する方法はありますか?

ko.mapping.fromJS() に渡されるデータとマッピングの例を次に示します。

var data = {
    name: 'Scott',
    level1: { 
        name : 'Alice',
        level2: {
            name: 'Tom'
        }
    }
}

var mapping = {
    name: { 
        create: function(options){
            console.log(options);
        }
    }
}

これが jsFiddle です: http://jsfiddle.net/2LQut/

「アリス」と「トム」ではなく、「スコット」に対してのみ、トップレベルに対してのみ create 関数が呼び出されるようにします。

これを達成するために私が見つけた唯一の回避策は、これを create 関数に追加することです。

this.create = null;

これを行うより良い方法はありますか?

4

2 に答える 2

1

「コピー」オプションを使用します。ここを参照してください: http://knockoutjs.com/documentation/plugins-mapping.html#copying_certain_properties_using_copy

それは次のようになります。

var mapping = {
    name: { 
        create: function(options){
            console.log(options);
        }
    },
    copy: "level1"
}
于 2013-06-28T09:31:44.000 に答える