1

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

我的目标是让一个组件“grid-user”将列模板(kendoGridCellTemplate、kendoGridHeaderTemplate 等)传递给承载该元素的父“grid-provider”组件,以便多个网格用户可以呈现相同的网格,而无需每个用户都拥有配置分页、排序等

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

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

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

是否可以以这种方式配置列?我尝试了许多略有不同的方法,但似乎没有任何区别,所以我开始认为这根本不可能。

4

2 回答 2

2

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

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

于 2018-08-18T03:10:32.883 回答
0

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

于 2018-08-20T18:26:30.470 回答