2012-08-27 94 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