ng-template错误:模板上下文未定义名为…(Kendo网格)的成员

问题描述 投票:0回答:1

[尝试在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"**,该错误消失,但是我需要的值也消失了(列现在未定义,我需要该值)。

任何人都可以帮忙吗?

angular kendo-ui kendo-grid ng-template
1个回答
0
投票

这与以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

© www.soinside.com 2019 - 2024. All rights reserved.