ng-template 错误:模板上下文未定义名为 ...(剑道网格)的成员
Posted
技术标签:
【中文标题】ng-template 错误:模板上下文未定义名为 ...(剑道网格)的成员【英文标题】:ng-template Error: The template context does not define a member called ... (Kendo Grid) 【发布时间】:2020-05-10 13:41:10 【问题描述】:尝试在 Angular 中将 ng-template 与 Kendo Grid 一起使用时遇到问题。 我拥有的 html 是有效的,并且在启动时可以正常编译和运行,但是 Visual Studio Code 显示此错误:
模板上下文没有定义一个叫做列的成员
这是我的代码:
<kendo-grid-column field="countryID"
title=" 'location.country' | translate "
>
<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 个参数的错误。但是,编译时占位符确实显示“列”的正确值。
如果我只留下**let-column**
而不是**let-column="column"**
,错误就会消失,但我需要的值也会消失(列现在未定义,我需要该值)。
有人可以帮忙吗?
【问题讨论】:
【参考方案1】:更新: Angular 语言服务版本 v0.900.11+ 似乎已解决此 ng-template 错误。请在回滚到任何先前版本之前尝试该版本或更高版本,如下所示。
原文: 这与在 VS Code 中运行的 Angular 语言服务扩展有关。具体来说,当前高于 v0.900.4 的任何服务版本。通过查看 VS Code 中已安装的扩展选项卡,检查您当前安装了哪个版本的 Angular 语言服务。
在 Angular 语言服务团队或 Kendo UI 团队解决此问题之前(不确定是谁的错),您可以暂时禁用 VS Code 中扩展的自动更新并安装 Angular 语言 v0.900.4 版本通过从此处的 GitHub 发布页面安装 .vsix 文件来提供服务: https://github.com/angular/vscode-ng-language-service/releases/tag/v0.900.4
当您单击扩展选项卡中的扩展时,安装 .vsix 文件的说明位于 VS Code 中出现的 Angular 语言服务的扩展信息页面上。我把它们包括在这里:
安装特定的发布版本
下载要安装的版本的 .vsix 文件 发布选项卡。
不要直接打开 .vsix 文件。相反,在 Visual Studio 代码中, 转到扩展选项卡。点击右上角的“...”菜单 扩展选项卡的一角,选择“从 vsix 安装...”,然后 为您刚刚下载的版本选择 .vsix 文件。
也可以使用以下命令安装扩展:
代码 --install-extension /path/to/ngls.vsix
【讨论】:
非常感谢您解决了我的问题!它似乎奏效了,我对你的回答很满意!非常感谢! 谢谢大佬,我没有在github页面上安装,而是在vscode上右键单击angular语言服务的滚轮图标,选择较早的版本v0.900.4,这样就解决了问题。跨度> @BradyHuang,这是一个不错的提示!以上是关于ng-template 错误:模板上下文未定义名为 ...(剑道网格)的成员的主要内容,如果未能解决你的问题,请参考以下文章