Anguler2 - 未处理的承诺拒绝:没有ViewContainerRef的提供者!(在动态模板中)

Ran*_*jan 15 angular

我正在尝试实现动态组件.我的要求是,我有三个类 - LayoutComponent,MenuService和DynamicService.LayoutComponent用于调用MenuService的方法来执行一些基本操作,在执行操作后,MenuService的方法再次调用DynamicService的方法来创建动态组件.

这是我的Plunker,它给出了以下错误

Unhandled Promise rejection: No provider for ViewContainerRef! ;

Gün*_*uer 35

ViewContainerRef 只能注入组件或指令,而不能注入服务.

组件和指令获取ViewContainerRef它们自身所附加的元素.任何视图都不附加服务.

您可以做的是为组件注入ViewContainerRef 服务,然后在构造函数中传递ViewContainerRef给服务.注入此服务的每个服务或组件都可以访问ViewContainerRef它.

  • `constructor(viewContainerRef:ViewContainerRef, service:MyService){ service.vcRef = viewContainerRef; }` (3认同)
  • 这节省了我的一天.谢谢. (2认同)