2

Knockoutjsにこのようなものがあるとしましょう

<pre data-bind="text: ko.toJSON($data, null, 2)">
{
    "people":[
        {
            "name":"Thor",
            "meta":[]
        },
        {
            "name":"Hulk",
            "meta":[]
        }
    ]
}
</pre>

Javascript は次のようになります。

function SuperheroViewModel() {
    var self = this;
    self.people = ko.observableArray();
    self.people.meta = ko.observableArray();

    self.people.push(new Person({name: 'Thor'}));
    //self.people.push(new Person({name: 'Hulk'}));

    self.addHero= function() {
        self.people.push(
            new Person({
                name: 'Wolverine'
            })
        );

        //self.meta.push(new Meta({sex: 'male'});
    }
}

ko.applyBindings(new SuperheroViewModel());
​

HTML

<button data-bind="click: addHero">Add Hero With Meta</button>

「トール」または「ハルク」の下に「メタ」を追加することは可能ですか?

新しい親アイテムが挿入されたときに、まず「メタ」を追加したいと思います。2 番目のステップは、ターゲットの「ヒーロー」にメタを追加することです。

4

1 に答える 1

1

addMetaaのコンテキスト内から呼び出している場合person、KO は現在のデータ項目を最初の引数として関数に渡します。

item.meta.pushしたがって、ハンドラー内から呼び出すことができます。

于 2012-11-06T04:40:49.817 に答える