我们可以将html模板从一个组件传递到angular2中的另一个组件吗?

时间:2017-11-29 10:42:04

标签: angular

假设我有一个可恢复的基本组件CardComponent,即它将接受诸如的输入 1. DataArray 2. HTML模板(迭代结束)

因此,消费者组件将使用CardComponent选择器并传递dataArray和Template。

我如何实现它?(传递htmltemplate)

2 个答案:

答案 0 :(得分:0)

您可以使用ng-content标记。

您的可重用组件(YOUR-REUSABLE-COMPONENT)模板是这样的。

<div class="box">
    <ng-content></ng-content>
</div>

在其他组件模板中使用可重用组件

<YOUR-REUSABLE-COMPONENT>
<div class="class1">
<h1>my main component</h2>
</div>
</YOUR-REUSABLE-COMPONENT>

答案 1 :(得分:0)

是的,可以使用ng-content方法传递HTML模板,但是您应该始终使用模板方法。

您的.html文件->通用->

<div>
      <ng-container *ngTemplateOutlet="template"> </ng-container>
 </div>

您的.ts文件

    @ContentChild(TemplateRef)
    template: TemplateRef<any>;

您要传递模板的其他组件文件

<my-component>
     <ng-template> Your HTML Content </ng-template>
 </my-component>

有关为什么应考虑使用ng-template而不是

的更多详细信息

https://medium.com/michalcafe/angulars-content-projection-trap-and-why-you-should-consider-using-template-outlet-instead-cc3c4cad87c9

Angular 2 use a "template" for ng-content to use inside component loop