アイテムのリストがあります。これらの各アイテムには、子の配列があります。それぞれの子供には孫がたくさんいます。孫の連れ去りを許可したい。
このフィドルを参照してください:http://jsfiddle.net/casudeo/FMWMR/18/
removeGrandchild関数には何を入れる必要がありますか?ありがとうございました。
アイテムのリストがあります。これらの各アイテムには、子の配列があります。それぞれの子供には孫がたくさんいます。孫の連れ去りを許可したい。
このフィドルを参照してください:http://jsfiddle.net/casudeo/FMWMR/18/
removeGrandchild関数には何を入れる必要がありますか?ありがとうございました。
これが私があなたのremoveGrandchild
関数のために書いたものです:
removeGrandchild = function(data, event) {
var context = ko.contextFor(event.currentTarget);
var dataGrandchild = context.$data;
var parentItemChild = context.$parent;
var grandchildToRemove =
ko.utils.arrayFirst(parentItemChild.grandchildren(),
function(grandchild) {
return (grandchild.name() === dataGrandchild.name());
});
var indexOfGrandchildToRemove =
ko.utils.arrayIndexOf(parentItemChild.grandchildren(),
grandchildToRemove);
if (indexOfGrandchildToRemove >= 0) {
parentItemChild.grandchildren.splice(indexOfGrandchildToRemove, 1);
}
};
[間抜けなフォーマットはご容赦ください...水平スクロールを避けようとしているだけです。]
Knockoutの2.0.0リリースで導入された重要な機能であるように、関数の最初の3行に特に注意してko.contextFor
ください。これは、ノックアウトを操作するときに非常に役立つことがわかります。
最後に、これが私のソリューションの分岐したフィドルです:http: //jsfiddle.net/jimmym715/U6dc7/
ご不明な点がございましたら、お気軽にお問い合わせください。