儿童动态创建组件与父级之间的Angular4通信

时间:2017-08-07 18:08:16

标签: angular dynamic components creation

我有一个Angular4组件,一旦用户按下加号按钮,就会动态创建许多孩子。子组件有一个输入选择,必须在选择选项后将信息发送到父组件。

ComponentFactoryResolver正在创建子组件,如下所示

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

子组件使用EventEmitter输出,但在应用程序运行时没有任何反应。

我尝试过没有动态创作并且工作正常。

我搜索了很多例子,但没有一个考虑angular4或父母和动态创建的孩子之间的沟通。

1 个答案:

答案 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是您从子组件发出的变量名。