我有一个项目列表。每个项目都有一系列的孩子。每个孩子都有一系列的孙子孙女。我想允许搬走孙子。
看到这个小提琴:http://jsfiddle.net/casudeo/FMWMR/18/
removeGrandchild函数应该怎么做?谢谢。
答案 0 :(得分:0)
以下是我为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版本中出现的一个重要特性,你可能会发现它会派上用场在淘汰赛中工作很多。
最后,这是我的解决方案:http://jsfiddle.net/jimmym715/U6dc7/
如果您有任何问题,请与我们联系。