[尝试在Angular中的Kendo Grid中使用ng-template时遇到问题。我拥有的html是有效的,并且在启动时可以正确编译和运行,但是Visual Studio Code会显示此错误:
模板上下文未定义称为列的成员
这是我的代码:
<kendo-grid-column field="countryID"
title="{{ 'location.country' | translate }}"
width="10">
<ng-template kendoGridEditTemplate
let-dataItem="dataItem"
let-column="column"
let-formGroup="formGroup">
<app-dropdown-single
[placeholder]="column.title"
[formControl]="formGroup?.controls['countryID']"
[data]="dataDdwCountry"
valueField="id">
</app-dropdown-single>
</ng-template>
</kendo-grid-column>
所以Visual Studio Code给我ng-template
的3个参数的错误。但是,在编译时,占位符确实显示了“ column”的正确值。如果我仅将其保留为**let-column**
而不是**let-column="column"**
,该错误消失,但是我需要的值也消失了(列现在未定义,我需要该值)。
任何人都可以帮忙吗?
这与以VS Code运行的Angular Language Service扩展有关。具体来说,当前高于v0.900.4的任何服务版本。通过查看VS Code中的已安装扩展选项卡,检查当前已安装的Angular Language Service版本。
[除非这是Angular Language Service团队或Kendo UI团队修复的(不确定谁出错),您可以暂时禁用VS Code中扩展的自动更新并安装Angular Language Service v0.900.4版本通过从GitHub版本页面安装.vsix文件:https://github.com/angular/vscode-ng-language-service/releases/tag/v0.900.4
安装.vsix文件的说明位于VS Code中提供的Angular Language Service的扩展信息页面上,当您在扩展选项卡中单击扩展时。我在这里包括了它们:
安装特定的发行版
下载要从中安装发行版的.vsix文件发布标签。
请勿直接打开.vsix文件。相反,在Visual Studio代码中,转到扩展标签。点击右上方的“ ...”菜单扩展标签的一角,选择“从vsix安装...”,然后选择您刚刚下载的发行版的.vsix文件。
扩展名也可以使用以下命令安装:
代码--install-extension /path/to/ngls.vsix