我有一個項目列表。這些項目中的每一個都有一系列的孩子。每個孩子都有一系列的孫子。我想允許刪除孫子。敲除:從另一個陣列內的陣列中移除元素
看到這個小提琴: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);
}
};
取前三行的特別注意的功能,因爲ko.contextFor
是Knockout 2.0.0發行版中的一個重要特性,您可能會發現在使用knockout時它會派上用場。
最後,這裏是我的分叉撥弄我的解決方案:http://jsfiddle.net/jimmym715/U6dc7/
讓我知道如果您有任何問題。
謝謝。這解決了我的問題。我一定會評論ko.contextFor。 – user1590749
這是與我的問題相關的更新鏈接:http://jsfiddle.net/casudeo/tAuUk – user1590749