父组件中:
<app-menu
#appMenu
[data]="matMenuData"
(selectedName)="activeSideBarItem($event)"
></app-menu>
<button type="button" (click)="myNewFile()">new</button>
myNewFile(){
var temp = this.matMenuData;
this.matMenuData = []; //重新给变量赋值
this.matMenuData.forEach(menu => {
if(menu.name == "common"){
menu.children.push({
name: "test",
id: "test",
})
}
})
this.matMenuData = [...temp];
}
activeSideBarItem(event) {
console.log(event)
}
子组件中:
@Input() public data: any[] ;
@Output() public selectedName = new EventEmitter();
selected(name) {
this.selectedName.emit(name);
}
<button mat-button (click)="selected"> {{node.name}} </button>