我有一个项目清单。这些项目中的每一个都有一组子项。每个孩子都有一系列的孙子孙女。我想允许删除孙子。
看到这个小提琴: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/
如果您有任何问题,请告诉我。