動態建立元件 createComponent - 2
新增inputBinding、outputBinding以及twoWayBinding,讓屬性綁定和指令變得更加容易
export class AppComponent {
readonly vcr = viewChild.required('container', { read: ViewContainerRef });
readonly canClose = signal(true)
readonly isExpanded = signal(true)
createWarningComponent(): void {
this.vcr().createComponent(AppWarningComponent, {
bindings: [
inputBinding('canClose', this.canClose),
twoWayBinding('isExpanded', this.isExpanded),
outputBinding<boolean>('close', (isConfirmed) => console.log(isConfirmed))
],
directives: [
FocusTrap,
{
type: ThemeDirective,
bindings: [inputBinding('theme', () => 'warning')]
}
]
})
}
}