組件css
import { Component, Input } from '@angular/core'; @Component({ selector: 'app-tree', templateUrl: './tree.component.html', styleUrls: ['./tree.component.scss'] }) export class TreeComponent { // 超簡單, 重點: 接收上級的值 // 能夠爲樹創建一個接口, 這裏簡化爲any @Input() treelists: any // 點擊動做 itemClick(i) { // 創建一個服務來接收這個值, 或者藉助雙向綁定, 處理動做 i._open = i._open // 本例只簡單演示開關, 藉助 treelists自己實現 console.log(i) } }
模板內容html
<ul> <li *ngFor="let item of treelists"> <button md-button (click)="itemClick(item)">{{item.title}}</button> <!--調用組件自己並 傳值給下級: [treelists]="item.items"--> <app-tree *ngIf="item._open && item.items && item.items.length" [treelists]="item.items"></app-tree> </li> </ul>
以上樹組件完成, 在其餘組件中調用此組件便可app
<app-tree [treelists]="menu"></app-tree>
數據/賦值雙向綁定
menu = [{ title: '1', _open:true, //默認打開第一級 items: [{ title: '1.1', items: [ { name: '1.1.1', title: 'xxx', items: [] } ] }, { title: '1.2', items:[] } ] }]