2016-03-03 48 views

回答

2

IVH樹形目錄讓你provide an expression每當選擇或取消選擇的節點由用戶來運行:

<div ng-controller="MyCtrl as fancy"> 
    <div 
    ivh-treeview="fancy.bag" 
    ivh-treeview-on-cb-change="fancy.otherAwesomeCallback(ivhNode, ivhIsSelected, ivhTree)"> 
</div> 

Here's a full example。如果您只想執行葉節點的操作,則可能需要執行otherAwesomeCallback檢查ivhNode在執行其他任何操作之前是否爲葉節點。

如果不工作,你可能會考慮使用ivhTreeviewBfs創建葉節點觀察家自己:

ivhTreeviewBfs(myTree, function(node) { 
    if(!node.children) { 
    $scope.$watch(function() { return node.selected; }, function() { 
     console.log('oh snap a leaf node changed!'); 
    }); 
    } 
}); 

這是未經檢驗的,而不是偉大實踐中,我會100%棍子前解決方案,如果可能的。另外,請注意,如果一個節點變成了葉子或者稍後停止成爲葉子,您也需要處理它。根據您的使用情況,您可能會考慮將更改處理程序本身也放在複選框上。

簡而言之,IVH Treeview沒有任何特別的

+0

有沒有辦法處理沒有複選框的葉子點擊? –

+1

當然 - 你會想要使用節點模板(https://github.com/iVantage/angular-ivh-treeview/blob/master/docs/templates-and-skins.md)。在模板中,只需使用ngClick即可,您將在範圍內具有助手和變量,以確定是否正在點擊葉子。 – jtrussell

+0

@jtrussell以及如何在模板上的ngClick上引用我的控制器中的方法? – arielcr