Angular 2 ngOnChanges не срабатывает при установке значения через ссылку на компонент
Я создаю компонент динамически следующим образом:
let componentFactory = this._componentFactoryResolver.resolveComponentFactory(this.component);
this.componentRef = this.viewContainerRef.createComponent(componentFactory);
this.componentRef.instance.text = this.text;
Как видите, я также присваиваю значение свойству text. Это работает, но он не запускает ngOnChanges в целевом компоненте и, следовательно, также не запускает обнаружение изменений (я использую стратегию "Push").
Я пытался вручную вызвать его с
this.componentRef.changeDetectorRef.detectChanges();
а также
this.componentRef.changeDetectorRef.markForCheck();
но без успеха.
Есть идеи, как лучше назначить новое текстовое значение целевым компонентам @Input ('text')? Текст - это просто строковое значение.
ОБНОВЛЕНИЕ: теперь я строю обходной путь с установщиком в целевом компоненте:
@Input('text')
set text(text: string) {
this._text = text;
this.cdRef.markForCheck();
}
Это работает, но это немного глупо, я все же предпочел бы более "угловой" способ.