mirror of
https://github.com/Eugeny/tabby.git
synced 2025-07-20 02:18:01 +00:00
@@ -1,10 +1,25 @@
|
|||||||
import { Component, Input } from '@angular/core'
|
import { Component, Input, ViewContainerRef, ViewChild, ComponentFactoryResolver, ComponentRef } from '@angular/core'
|
||||||
import { SettingsTabProvider } from '../api'
|
import { SettingsTabProvider } from '../api'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'settings-tab-body',
|
selector: 'settings-tab-body',
|
||||||
template: '<ng-container *ngComponentOutlet="provider.getComponentType()"></ng-container>',
|
template: '<ng-template #placeholder></ng-template>',
|
||||||
})
|
})
|
||||||
export class SettingsTabBodyComponent {
|
export class SettingsTabBodyComponent {
|
||||||
@Input() provider: SettingsTabProvider
|
@Input() provider: SettingsTabProvider
|
||||||
|
@ViewChild('placeholder', {read: ViewContainerRef}) placeholder: ViewContainerRef
|
||||||
|
private component: ComponentRef<Component>
|
||||||
|
|
||||||
|
constructor (private componentFactoryResolver: ComponentFactoryResolver) { }
|
||||||
|
|
||||||
|
ngAfterViewInit () {
|
||||||
|
// run after the change detection finishes
|
||||||
|
setImmediate(() => {
|
||||||
|
this.component = this.placeholder.createComponent(
|
||||||
|
this.componentFactoryResolver.resolveComponentFactory(
|
||||||
|
this.provider.getComponentType()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user