【问题标题】:how to get selected node value for treeview using click event in angularjs directives如何使用 angularjs 指令中的单击事件获取树视图的选定节点值
【发布时间】:2016-03-08 03:25:48
【问题描述】:

我在 angularjs 中使用指令概念使用 angularjs 中的单击事件函数显示树视图的选定节点值。下面是我的示例代码

Tree.html:

<div
  data-angular-treeview="true"
  data-tree-model="roleList"
  data-node-id="roleId"
   data-node-label="roleName"
   data-node-children="children"
    data-ng-click="selectNode(roleList[1])"
    data-node-children="children">
    </div>

treeviewcontroller.js:

$scope.roleList1 = [
        { "roleName" : "User", "roleId" : "role1", "children" : [
          { "roleName" : "subUser1", "roleId" : "role11", "children" : [] },
          { "roleName" : "subUser2", "roleId" : "role12", "children" : [
            { "roleName" : "subUser2-1", "roleId" : "role121", "children" : [
              { "roleName" : "subUser2-1-1", "roleId" : "role1211", "children" : [] },
              { "roleName" : "subUser2-1-2", "roleId" : "role1212", "children" : [] }
            ]}
          ]}
        ]},

        { "roleName" : "Admin", "roleId" : "role2", "children" : [] },

        { "roleName" : "Guest", "roleId" : "role3", "children" : [] }



      ];

Treeview.js:

    scope.selectNode = function(val)
    {
    alert(val.roleName);
    }



output:
user
      subuser1
      subuser1-1
 Admin
     subadmin1

在警报位置“管理员”中的此输出将通过单击管理节点显示。但我想在单击事件函数中显示动态选择的节点值。请建议我如何执行此操作。 谢谢

【问题讨论】:

    标签: angularjs treeview


    【解决方案1】:

    为了动态选择树的节点,我做了以下操作:

    假设您要选择树的第一个(顶部,[0])元素。 所以首先将 data-tree-id="myTreeId" 添加到您的 HTML:

    <div
        data-angular-treeview="true"
        data-tree-model="roleList"
        data-node-id="roleId"
        data-node-label="roleName"
        data-node-children="children"
        data-ng-click="selectNode(roleList[1])"
        data-node-children="children"
        data-tree-id="myTreeId">
    </div>
    

    在控制器中: $scope.roleList1[0].selected = "selected"; $scope.myTreeId.currentNode = $scope.roleList1[0];

    【讨论】:

    • 非常感谢 ramsesus。从你的回答中得到了线索。
    【解决方案2】:

    在 Tree.html 中:

    添加行: data-tree-id="mytree"

    修改 data-ng-click 事件: data-ng-click="selectNode(mytree.currentNode.roleName)"

    在 Treeview.js 中: scope.selectNode = function(val) { alert(val); }

    【讨论】:

    • 我也在做上述更改,但我仍然在 Treeview.js 中获得未定义的值。
    • 我创建了一个 plunker http://plnkr.co/edit/RuUFemqpouPEFIcBBIXh?p=preview 。如果这是您要找的,请告诉我
    • 它仅适用于使用控制器,但我正在使用指令然后我在 Treeview.js 中得到未定义的值
    • 你能不能提供一些 plunker
    • plnkr.co/edit/BVdnb20S6dPwCLsdNioo?p=catalogue 所以请建议我如何做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多