我正在使用动态组件加载器,如果在组件初始化时启动所有数据,则一切正常。我正在使用此代码:
this.dcl.loadAsRoot(SomeComponent, "#somediv", this.injector).then((cmp)=>{
// @Input()
cmp.instance.someinput = this.someinput;
// @Output()
cmp.instance.someoutput.subscribe(res => { this.consoleLog(res) })
// Trigger change detection
cmp.location.internalElement.parentView.changeDetector.ref.detectChanges();
// return data
return cmp
})
我现在想要为" someinput"提供新的价值。变量,这是可能的还是我需要重新初始化整个组件?!
答案 0 :(得分:1)
只需保留对组件的引用
compRef:ComponentRef;
someFunc() {
this.dcl.loadAsRoot(SomeComponent, "#somediv", this.injector).then((cmp)=>{
this.compRef = cmp;
...
}
}
someOtherFunc() {
this.compRef.someInput = 'someotherValue';
this.compRef.location.internalElement.parentView.changeDetector
.ref.detectChanges();
}