先上網址吧:https://github.com/500tech/angular-tree-component 這是牛逼哄哄的GitHub頁面, http://500tech.github.io/angular-tree-component/ 這就是官網啦。css
大背景--首先我是在Angular4下面使用的。html
一、install from npm : node
1 npm install --save angular-tree-component
二、導入cssgit
在styles.scss下面導入樣式:github
1 @import '~angular-tree-component/dist/angular-tree-component.css';
三、import the modulenpm
app.module.tsapp
1 import { TreeModule } from 'angular-tree-component'; 2 3 @NgModule({ 4 imports: [..., TreeModule], 5 ... 6 }) 7 export class AppModule { 8 ... 9 }
四、app.component.ts裏面ui
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裏面this
1 <tree-root [nodes]="nodes" [options]="options"></tree-root>
到這裏編譯出來就能夠看到一棵樹啦spa
五、是否是感受也不是很麻煩嫩,這棵樹是真的牛掰,爲做者手動點贊。
在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),
六、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狀態
七、在option裏面添加:useCheckBox:true能夠顯示checkBox。這時還能夠有一個select事件,獲取的是子節點。那若是須要獲取父節點怎麼處理呢,折騰了老半天以後,最終仍是找到了方法。。。。
node.partialSelected 能夠獲取到根節點喲。