2012-08-27 74 views

回答

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发行版中的一个重要特性,您可能会发现在使用knockout时它会派上用场。

最后,这里是我的分叉拨弄我的解决方案:http://jsfiddle.net/jimmym715/U6dc7/

让我知道如果您有任何问题。

+0

谢谢。这解决了我的问题。我一定会评论ko.contextFor。 – user1590749