angular-tree-component的使用

先上网址吧:https://github.com/500tech/angular-tree-component 这是牛逼哄哄的GitHub页面, http://500tech.github.io/angular-tree-component/ 这就是官网啦。

大背景--首先我是在Angular4下面使用的。

1、install from npm : 

1 npm install --save angular-tree-component

2、导入css

在styles.scss下面导入样式:

1 @import '~angular-tree-component/dist/angular-tree-component.css';

3、import the module

app.module.ts

1 import { TreeModule } from 'angular-tree-component';
2 
3 @NgModule({
4   imports: [..., TreeModule],
5   ...
6 })
7 export class AppModule {
8   ...
9 }

4、app.component.ts里面

 1  nodes = [
 2     {
 3       id: 1,
 4       name: 'root1',
 5       children: [
 6         { id: 2, name: 'child1' },
 7         { id: 3, name: 'child2' }
 8       ]
 9     },
10     {
11       id: 4,
12       name: 'root2',
13       children: [
14         { id: 5, name: 'child2.1' },
15         {
16           id: 6,
17           name: 'child2.2',
18           children: [
19             { id: 7, name: 'subsub' }
20           ]
21         }
22       ]
23     }
24   ];
25   options = {};

在 app.component.html里面

1 <tree-root [nodes]="nodes" [options]="options"></tree-root>

到这里编译出来就可以看到一棵树啦

5、是不是感觉也不是很麻烦嫩,这棵树是真的牛掰,为作者手动点赞。

在option里面可以配置一些参数:

显示内容--displayfield:'name'(以显示名称为例)

id--idField: 'uuid'(如果没有id,会随机生成id,保证每个节点的唯一性)

是否展开节点:isExpandedField:'expanded'(默认是不展开的哟)

actionMapping:自定义事件,

1  mouse: {
2         dblClick: (tree, node, $event) => {
3           if (node.hasChildren) TREE_ACTIONS.TOGGLE_EXPANDED(tree, node, $event);
4         }
5       }

支持按需加载: 

1  getChildren: this.getChildren.bind(this),

6、events

1   <tree-root [nodes]="nodes"
2     (toggleExpanded)="onEvent($event)"
3     (activate)="onEvent($event)"
4     (focus)="onEvent($event)"
5     (blur)="onEvent($event)">
6   </tree-root>
7 
8   onEvent = ($event) => console.log($event);

有activate状态就有deactivate状态

7、在option里面添加:useCheckBox:true可以显示checkBox。这时还可以有一个select事件,获取的是子节点。那如果需要获取父节点怎么处理呢,折腾了老半天之后,最终还是找到了方法。。。。

node.partialSelected 可以获取到根节点哟。

猜你喜欢

转载自www.cnblogs.com/Vibge/p/9368262.html
今日推荐