为什么选中的对象在单击时不会显示在控制台中

时间:2016-01-04 21:36:19

标签: angularjs angularjs-directive angularjs-scope angular-ui-router jstree

我正在使用此演示:https://github.com/ezraroi/ngJsTree

API参考:https://www.jstree.com/api/#/

我做了两个例子

  1. 首先我有一个复选框。当我选中任何复选框时,它会显示所选的项目对象(代码簿:http://codepen.io/naveennsit/pen/MKJdOZ?editors=101

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

  2. 但是当我删除此复选框时,控制台中不显示点击和选中的项目(代码簿:http://codepen.io/naveennsit/pen/RrKmxp

  3. 我在两个例子中使用了相同的功能,但第二个功能不起作用。

1 个答案:

答案 0 :(得分:1)

根据jsTree的文档.get_checked(true)返回“所有已检查节点的数组”。如果您没有与节点关联的复选框,那么我不确定它是否有效。或者,如果没有重要的解决方法,它将无法运行。但是,文档说“如果在设置中打开tie_selection,则此函数将返回与get_selected相同”。这可能会为您提供所寻求的解决方案。否则,您可以将.get_checked更改为.get_selected 我找到的文档可以找到here. 在页面上找到.get_checked fyi。

修改 我决定亲自尝试一下。

$scope.getSelectedCategories = function() {
    var selected_nodes = $scope.treeInstance.jstree(true).get_selected(true);
    alert(JSON.stringify(selected_nodes));
};

这提醒了对象。