3
ViewContainerRef.createComponent()
メソッドを使用してapp.component.ts
メソッド内で動的にコンポーネントを作成しています。これはComponentRef
オブジェクトを返します。動的に作成されたコンポーネントへのイベントバインディングの追加
let newComponent:ComponentRef<any> = this.filtersSection.createComponent(MyDateRangeComponent);
それはonDateRangeChange
イベントをリスンし、app.component.ts
コンポーネント内で定義dateRangeChanged(event)
方法を実行するように動的にこのコンポーネントにイベントリスナーを追加する必要があります。
私はもともとこのようapp.component.htmlの内側に、このコンポーネントを使用:
:<my-daterange (onDateRangeChange)="dateRangeChanged($event)"></my-daterange>
私は、これはRenderer
クラスを使用して達成することができたが、私はこの作業を行うことができなかったことを発見しました
this.renderer.listen(newComponent, 'click', (event) => {
// Do something with 'event'
console.log(event);
});
これについての助力は本当に感謝しています。 ComponentRef.instance
を使用して
私は、インスタンス上でクリックリスナーを追加するにはどうすればよいですか? – Rajiv
動的コンポーネント内の 'newComponent.location.nativeElement.addEventListener( 'click'、myClickHandler.bind(this))'または '@Hostlistener( 'click')myClickHandler(){...} –