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

Why selected object is not display in console when it is clicked

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

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

我举了两个例子

  1. 首先我有一个复选框。当我 select 任何复选框时,它显示 selected 项目对象 (codepen: 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. 但是当我删除这个复选框时,单击和 selected 项目不会显示在控制台中(codepen:http://codepen.io/naveennsit/pen/RrKmxp

我在两个示例中使用了相同的函数,但第二个不起作用。

根据 jsTree 的文档。get_checked(true) returns "an array of all checked nodes"。如果您没有与节点关联的复选框,那么我不确定它是否有效。或者,如果没有重要的解决方法,它将无法工作。但是,文档说 "if tie_selection is on in the settings this function will return the same as 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));
};

这提醒了对象。