[英]Insert Angular component (HTML) dynamically to TineMCE editor on button click
[英]Angular, dynamically get component ref, on button click
根据某些条件,我有可以包含10个不同子组件之一的组件。
<div *ngIf="type === 1">
<component_1></component_1>
</div>
<div *ngIf="type === 2">
<component_2></component_2>
</div>
<div *ngIf="type === 3">
<component_3></component_3>
</div>
...
在该组件中,我需要一个可以随时返回正确的子组件引用的方法(例如,单击按钮时)。
getComponentRef() {
switch (this.type) {
case 1: {
// return component_1 ref;
break;
}
case 2: {
// return component_2 ref;
break;
}
case 3: {
// return component_3 ref;
break;
}
...
}
}
任何想法 ?
做这个:-
parent.component.html
<div *ngIf="type === 1"> <component_1 (emittedEvent)="setActiveChildTab($event)"></component_1> </div> <div *ngIf="type === 2"> <component_2 (emittedEvent)="setActiveChildTab($event)"></component_2> </div> <div *ngIf="type === 3"> <component_3 (emittedEvent)="setActiveChildTab($event)"></component_3> </div> ...
parent.component.ts
创建一个变量来存储子activeTab: string
的引用,例如activeTab: string
setActiveChildTab(activeTab: string) { this.activeTab = activeTab; }
在每个child.component.ts
创建一个变量以发出活动选项卡,例如
@Output() emittedEvent: EventEmitter<any> = new EventEmitter()
。
ngOnInit() { this.emittedEvent.emit('Child1'); }
让我知道它是否有效。
1)您已经在ngIf
输入了value。 您可以使用它。
2)您需要在通用服务文件中创建一个EventEmitter
。
这样,您可以从所有组件的ngOnInit()
发出标志,并订阅该组件。
3)您也可以通过Cookie进行管理。
4)还通过亲子数据传输进行管理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.