Angular2 - 在服务中获取TemplateRef

时间:2016-10-21 05:57:22

标签: angular ng-bootstrap

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

问题的背景(因为我可能首先做错了):

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

1 个答案:

答案 0 :(得分:5)

两种方式

    来自组件模板的
  • <template>
  • <template>从外面传给孩子

(未经测试)

@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>