AngularJS基于树的控制组件

树控件可以作为一个DOM元素或属性。
复制脚本和CSS为你的项目添加一个脚本和链接到你的页面。
<script type="text/javascript" src="/angular-tree-control.js"></script> <link rel="stylesheet" type="text/css" href="css/tree-control.css"> <link rel="stylesheet" type="text/css" href="css/tree-control-attribute.css">
添加一个依赖于您的应用程序模块
angular.module('myApp', ['treeControl']);将树元素添加到您的模板
<!-- as a Dom element -->
<treecontrol class="tree-classic"
tree-model="dataForTheTree"
options="treeOptions"
on-selection="showSelected(node)"
selected-node="node1">
employee: {{node.name}} age {{node.age}}
</treecontrol>
<!-- as an attribute -->
<div treecontrol class="tree-classic"
tree-model="dataForTheTree"
options="treeOptions"
on-selection="showSelected(node)"
selected-node="node1">
employee: {{node.name}} age {{node.age}}
</div>并为树添加数据
$scope.treeOptions = {
nodeChildren: "children",
dirSelectable: true,
injectClasses: {
ul: "a1",
li: "a2",
liSelected: "a7",
iExpanded: "a3",
iCollapsed: "a4",
iLeaf: "a5",
label: "a6",
labelSelected: "a8"
}
}
$scope.dataForTheTree =
[
{ "name" : "Joe", "age" : "21", "children" : [
{ "name" : "Smith", "age" : "42", "children" : [] },
{ "name" : "Gary", "age" : "21", "children" : [
{ "name" : "Jenifer", "age" : "23", "children" : [
{ "name" : "Dani", "age" : "32", "children" : [] },
{ "name" : "Max", "age" : "34", "children" : [] }
]}
]}
]},
{ "name" : "Albert", "age" : "33", "children" : [] },
{ "name" : "Ron", "age" : "29", "children" : [] }
];样式
树控件呈现以下的DOM结构
<treecontrol class="tree-classic"> <ul> <li class="tree-expanded"> <i class="tree-branch-head"></i> <i class="tree-leaf-head"></i> <div class="tree-label"> ... label - expanded angular template is in the treecontrol element ... </div> <treeitem> <ul> <li class="tree-leaf"> <i class="tree-branch-head"></i> <i class="tree-leaf-head"></i> <div class="tree-label tree-selected"> ... label - expanded angular template is in the treecontrol element ... </div> </li> <li class="tree-leaf"> <i class="tree-branch-head"></i> <i class="tree-leaf-head"></i> <div class="tree-label"> ... label - expanded angular template is in the treecontrol element ... </div> </li> </ul> </treeitem> </li> </ul> </treecontrol>
CSS类用于内置样式的树控件。附加的类可以使用options.injectclasses成员加入(见上文)
树扩展,树倒塌,树叶放在“UL”元素
树枝头,树的叶头-被放置在'i'元素。我们使用这些类来放置树的图标
树选择放置于标签div
使用了自定义的treeOptions,会报错:
TypeError: scope.options.equality is not a function;
at link (http://localhost:8092/xtbg/resources/business/ajDirective/ajtree/angular-tree-control.js:382:72)
...
求解,正在排查中
回复搞了10天,搞懂了