2017-08-07 63 views
0

我有一个Angular4组件,只要用户按下加号按钮,就可以动态创建许多孩子。子组件有一个输入选择,必须在选项选择后向父组件发送信息。正在ComponentFactoryResolver创建Angular4之间的孩子动态创建的组件之间的通信

儿童组件下面的部分

let componentFactory = this.componentFactoryResolver.resolveComponentFactory(MyComponent); 
let viewContainerRef = this.anchor.viewContainerRef; 
viewContainerRef.createComponent(componentFactory); 

子组件具有使用EventEmitter输出,但什么也没有发生在应用程序运行时。

我试过没有动态创建,工作正常。

我搜索了很多例子,但他们都没有考虑angular4或父与动态创建子之间的通信。

+0

你能否为你的问题创建一个重要的例子。找到解决方案将会很有帮助 –

回答

0

试试这个:

let componentFactory = this.componentFactoryResolver.resolveComponentFactory(MyComponent); 
let viewContainerRef = this.anchor.viewContainerRef; 
const dynamicComponentInstance = viewContainerRef .createComponent(componentFactory) 
      .instance; 
dynamicComponentInstance['childEventEmitter'].subscribe((eventEmitter) => { 
      console.log(eventEmitter) 
     }); 

“childEventEmitter” 是你的子组件发出一个变量名。