我正在使用ng jsTree组件https://github.com/ezraroi/ngJsTree
这是我的实施
<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&#39;节点,使用所选属性返回的数据是&#39; ajson2&#39;,但是当我取消选中&#39; ajson2&#39;时,使用所选属性返回的数据是&#39; ajson3&#39;,&#39; ajson4& #39;
看起来这是错误,还是我错过了什么?
答案 0 :(得分:0)
控制台记录'数据'未提供正确的信息。
刚刚想出解决方案。更新了$ scope.getSelectedCategories(),如下所示
$scope.getSelectedCategories = function() {
var selected_nodes = $scope.treeInstance.jstree(true).get_checked(true);
console.log(selected_nodes);
};
记录选定的节点对象。