Angular 2 Modal Service插入动态(未知)组件

时间:2016-05-16 17:41:08

标签: angular render

我正在尝试将组件动态插入自定义模态窗口组件

我的模态组件接收到一个html文件的URL,其中包含一个组件:

<a modal bodyUrl="/some/path/body.html">

body.html:

  <hello-component></hello-component>

我正在通过http将body.html的内容加载到模态的DOM中,并通过htmlBinding属性将其插入到模板中。

然而,我的组件不会渲染。有没有办法强制重新渲染?或类似的东西?

感谢您的帮助!

更新1:

下面的两个答案让我想到将组件类型作为模态的输入传递,并使用DynamicComponentLoader来引导组件

这里有很多概念:

http://plnkr.co/edit/kbD8wVgTr0b0J4rvk4uY?p=preview

1 个答案:

答案 0 :(得分:2)

您需要使用DynamicComponentLoader而不是innerHTML属性。在这种情况下,组件将被编译并添加到模板中。

以下是一个示例:

@Component({
  selector: 'my-app',
  template: 'Parent (<child id="child"></child>)'
})
class MyApp {
  constructor(dcl: DynamicComponentLoader, injector: Injector) {
    dcl.loadAsRoot(ChildComponent, '#child', injector);
  }
}

有关详细信息,请参阅此链接: