我正在制作一个ngx-数据标签包装器,我想从父组件传递列模板。我是通过ng模板的出口来做的。但由于某种原因,它没有被渲染。
以下是我如何通过父母的天赋
<app-list>
<ng-template #customColumns>
<ngx-datatable-column name="age" >
<ng-template let-value="value" ngx-datatable-cell-template>
Test
</ng-template>
</ngx-datatable-column>
</ng-template>
</app-list>
以下是子组件html
<ngx-datatable [rows]="rows" [columns]="cols">
<ng-container [ngTemplateOutlet]="customColumnsTemplate">
</ng-container>
</ngx-datatable>
子组件ts
@ContentChild('customColumns')
customColumnsTemplate: TemplateRef<any>;
如果我只是将模板直接复制到子组件中,它可以正常工作,但它不适用于ngTemplateOutlet。
目前使用角10.1.6
发布于 2021-05-05 11:50:09
创建包含模板的列数组。它可以是这样的对象数组:
let columns = [{ name: "Column Name", cellTemplate: someCellTemplate, headerTemplate: someHeaderTemplate...}]
在这种情况下,模板将是应用程序列表组件中的模板。
<ng-template #myCellTemplate let-row="row" let-column="column" let-value="value">
Test
</ng-template>
使用ViewChild访问应用程序列表组件中的模板。
@ViewChild('myCellTemplate') myCellTemplate: TemplateRef<any>;
如果我能理解的话,您的子组件实际上就是包装器,因此您只需要将列作为该包装器的输入发送。
<ngx-datatable [rows]="rows" [columns]="columns">
</ngx-datatable>
示例来自他们这里的演示,Ngx-datatable示例
这里的文档文档
https://stackoverflow.com/questions/67365009
复制相似问题