VS Code Angular模板变量定义自动重命名和导航

时间:2018-07-26 08:03:29

标签: angular visual-studio-code

考虑以下来自控制器的代码段:

  /* Local copies of Enumerators to use on template */
  MeasurementOriginEnum: typeof MeasurementOriginEnum = MeasurementOriginEnum;

以及模板中的一些用法:

<button *ngIf="element.getMeasurementStatus().id !== MeasurementOriginEnum.FROM_FILE" mat-menu-item (click)="deleteElement(element)">

如您所见,模板使用控制器变量的文字名称(MeasurementOriginEnum)。

现在的问题是:我认为我安装了无数VS Code扩展来支持我对Angular的开发,但我仍然缺少以下两个功能:

功能一:重命名模板上的定义

  1. 右键单击控制.ts文件中的变量名
  2. 选择“重命名符号”
  3. 输入新名称
  4. 新名称也将成为模板

就我而言,只有.ts个文件得到更新,而模板变量没有被触摸,并且我以名称冲突结尾

特征二:按住Ctrl键并单击模板中的定义

  1. 在模板ctrl上,单击变量名称
  2. 您将被转移到控制器ts文件变量定义

就我而言,什么都没有发生……

我安装了John Papa的Angular Essentials,该软件随Angular Language Service一起提供,根据它的描述,它将提供那些功能...

下面是我的完整扩展列表,也许有某种冲突?

Angular.ng-template
bradgashler.htmltagwrap
christian-kohler.path-intellisense
dbaikov.vscode-angular2-component-generator
EditorConfig.EditorConfig
eg2.tslint
eg2.vscode-npm-script
esbenp.prettier-vscode
infinity1207.angular2-switcher
johnpapa.angular-essentials
johnpapa.Angular2
johnpapa.winteriscoming
Mikael.Angular-BeastCode
ms-python.python
msjsdiag.debugger-for-chrome
natewallace.angular2-inline
patrys.vscode-code-outline
PKief.material-icon-theme
robertohuertasm.vscode-icons
robinbentley.sass-indented
sanderledegen.angular-follow-selector
SonarSource.sonarlint-vscode
wayou.vscode-todo-highlight

1 个答案:

答案 0 :(得分:1)

前段时间有人问过问题。但是,对于功能一(重命名模板上的定义),到目前为止我还没有发现任何东西-也许这是WebStorm(来自JetBrains)的独特卖点。这似乎是对应的feature request

对于功能2(按住Ctrl键单击可从模板转到定义),我目前正在使用angular2-switcher by infinity1207