【发布时间】:2017-09-06 10:14:03
【问题描述】:
是否可以编写可重复使用的ng-template?我的很多组件都使用完全相同的ng-template。
例如:
<kendo-grid>
<kendo-grid-column field="group">
<ng-template kendoGridEditTemplate let-dataItem="dataItem" let-formGroup="form">
<kendo-dropdownlist #listGroups [data]="groups"
textField="title"
valueField="id"
[valuePrimitive]="true"
[filterable]="true"
[formControl]="form.get('groupId')">
</kendo-dropdownlist>
</ng-template>
</kendo-grid-column>
</kendo-grid>
我不想在我所有的组件中重复这个模板和逻辑。我可以编写自定义组件并将此代码缩小到:
<kendo-grid>
<kendo-grid-column field="group">
<ng-template kendoGridEditTemplate let-dataItem="dataItem" let-formGroup="form">
<my-custom-component [formControl]="form.get('groupId')">
</my-custom-component>
</ng-template>
</kendo-grid-column>
</kendo-grid>
但我想做更多:
<kendo-grid>
<kendo-grid-column field="group">
<ng-template [ngTemplateOutlet]="templateFromAnotherSource">
</ng-template>
</kendo-grid-column>
</kendo-grid>
我发现this thread 和this 描述了ngTemplateOutlet,但没有描述如何在多个组件之间共享模板。
【问题讨论】:
标签: angular angular2-template kendo-ui-angular2 angular-template