2014-12-23 53 views
0

我與吳jsTree組件https://github.com/ezraroi/ngJsTreeNG jsTree返回錯誤的對象選擇的節點

在這裏工作是我實現

<div js-tree="treeConfig" ng-model="treeData" tree="treeInstance" tree-events="check_node:getSelectedCategories;uncheck_node:getSelectedCategories"></div> 

在控制器JS代碼

$scope.treeConfig = { 
    core : { 
     multiple : true, 
     animation: false, 
     error : function(error) { 
      $log.error('treeCtrl: error from js tree - ' + angular.toJson(error)); 
     }, 
     check_callback : true, 
     worker : true 
    }, 
    types : { 
     default : { 
      icon : 'glyphicon glyphicon-flash' 
     }, 
     star : { 
      icon : 'glyphicon glyphicon-star' 
     }, 
     cloud : { 
      icon : 'glyphicon glyphicon-cloud' 
     } 
    }, 
    version : 1, 
    "checkbox" : { 
     "tie_selection" : false 
    }, 
    plugins : ['types','checkbox'] 
}; 

$scope.treeData = [ 
    { id : 'ajson1', parent : '#', text : 'Simple root node', state: { opened: true} }, 
    { id : 'ajson2', parent : '#', text : 'Root node 2', state: { opened: true} }, 
    { id : 'ajson3', parent : 'ajson2', text : 'Child 1', state: { opened: true} }, 
    { id : 'ajson4', parent : 'ajson2', text : 'Child 2' , state: { opened: true}} 
]; 

$scope.getSelectedCategories = function(e, data) { 
    console.log('data: ', data); 
}; 

所以,當我檢查'ajson2'節點中,選定屬性返回的數據是'ajson2',但是當我取消選中'ajson2'時,使用選定屬性返回的數據是'ajson3','ajson4'。

看起來這是錯誤,或者我錯過了什麼?

回答

0

控制檯日誌「數據」未提供正確的信息。

只是想出瞭解決方案。更新$ scope.getSelectedCategories()如下

$scope.getSelectedCategories = function() { 
    var selected_nodes = $scope.treeInstance.jstree(true).get_checked(true); 
    console.log(selected_nodes); 
}; 

其中記錄所選節點對象/ s。