将模板传递给组件的更好的方法是什么?作为道具还是内容?

时间:2019-01-28 02:30:16

标签: angular

有时候,我们感觉就像将一块模板传递给一个组件以使其可重用或可定制。我们可以通过传递模板引用来实现它,例如:

// In a parent component
<ng-template #templateEx><p>I'm an example1</p></ng-template>
<theme-comp [template]="templateEx"></theme-comp>

// In a child(ThemeComponent) component
...
@Input() template: TemplateRef<any> // use it with ng-container

或者通过投影我们想要的模板:

// In a parent component
<theme-comp>
  <ng-template><p>I'm an example2</p></ng-template>
</theme-comp>

// In a child component
...
@ContentChild(TemplateRef) template: TemplateRef<any> // use it with ng-container

我认为两种方法都可以很好地工作,但是我只是好奇每种方法的正确用例,或者只是区别。任何见识将不胜感激!

0 个答案:

没有答案