有时候,我们感觉就像将一块模板传递给一个组件以使其可重用或可定制。我们可以通过传递模板引用来实现它,例如:
// 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
我认为两种方法都可以很好地工作,但是我只是好奇每种方法的正确用例,或者只是区别。任何见识将不胜感激!