将 Kendo Angular 网格列模板传递给托管网格的 parent 组件

Passing Kendo Angular grid column templates to a parent component hosting the grid

我已经在 Telerik Kendo Angular UI forum 上问过这个问题,如果我得到答案,我会更新两个位置,但这个问题可能是由于我有限的 Angular 知识而不是 Kendo 功能。

我的目标是让一个组件 "grid-user" 将列模板(kendoGridCellTemplate、kendoGridHeaderTemplate 等)传递给托管元素的 parent "grid-provider" 组件,以便多个 grid-users可以呈现同一个网格,而无需分别配置分页、排序等

我的应用程序提供了搜索不同种类产品的功能。所有搜索结果都显示在 Kendo UI for Angular 网格中。每种产品都有不同的字段显示在搜索结果中,但网格的一般功能始终相同。我想定义一次网格,但让不同的搜索提供程序提供他们自己的列配置和数据。但是到目前为止,当 <ng-template kendoGridCellTemplate> 等直接嵌套在 <kendo-grid-column> 元素下时,我只能提供 header、过滤器和单元格模板,这些元素直接嵌套在 [=15] 下=] 元素 - 都在同一个模板中。

请看这个例子:https://stackblitz.com/edit/angular-htffqq

第一个网格配置正确,但单元格模板直接位于 <kendo-grid-column><kendo-grid> 下方。第二个网格显示默认配置,无法识别 @ContentChild 提供的模板,默认为无配置。

列可以这样配置吗?我尝试了许多略有不同的方法,但 none 似乎没有什么不同,所以我开始认为这根本不可能。

我认为网格不能select 以这种方式提供的模板。至少我无法 select 投影内容中的 ContentChild 或 ContentChildren。 您可以使用我建议的方法 - 在 GridProvider 组件中获取 TemplateRef 并在列模板中使用 ngTemplateOutlet 呈现它:

https://stackblitz.com/edit/angular-htffqq-ngmlgw?file=app/grid-provider.component.ts

按照@SiliconSoul 的示例,首选解决方案如下:https://stackblitz.com/edit/angular-htffqq-p8wies