将Angular2 Component作为参数传递

时间:2017-04-18 10:43:08

标签: angular angular-components

我需要创建一个通用解决方案,通过传递一些参数从应用程序内的任何位置打开模态,这些参数可能只是大小(小,大,全屏),可忽略(真或假)和最大重要参数是我需要在此模态中显示的组件。我的问题是如何将完整组件传递给服务中的方法。

1 个答案:

答案 0 :(得分:0)

您只需将组件类传递给您的服务:

service.openModal(component = AComponent, ...rest) {}

如果要将其作为字符串传递,可以声明将在服务中使用哪些组件并按名称查找它们。像这样:

service.dynamicComponents = [AComponent, BComponent];

service.openModal(params = { component: 'AComponent' }) {
  const component = this.dynamicComponents
                        .find(o => o.constructor.name === params.component)
}