Angular2 - 在服务中获取 TemplateRef

Angular2 - getting a TemplateRef inside a service

有没有办法为服务中的现有 html 模板获取 TemplateRef?

问题的上下文(因为我可能一开始就做错了):

我正在创建一个服务,它使用 NgbModal 在弹出窗口中显示一些文本。模态需要一个 TemplateRef 来显示内容,我不知道如何创建。其他选项是传递一个字符串(已转义,我需要显示 html)或传递一个组件(我不知道如何将所需的文本传递给它)。

两种方式

  • <template> 来自组件模板:
  • <template> 从外部传递为 child

(未测试)

@Component({
  selector: 'foo',
  template: '<template #ref1>xxx</template>'
})
class MyComponent {
  @ViewChild('ref1') template1:TemplateRef;

  constructor(private template2:TemplateRef, private someService:SomeService) {
    someService.template2 = template2;
  }

  ngAfterViewInit() {
    this.someService.template1 = this.template1;
  }
}
<foo><template>yyy</template>