7

如何告诉 PhpStorm/WebStorm$ctrl在模板中是已知的,并帮助它确定它所属的控制器(可能使用 jsdoc)?

我在 Angular 1.5 中以这种方式创建组件:

angular
    .module('myModule')
    .component('myComponent', {
        templateUrl: "my.component.html",
        controller : [
            MyComponentController
        ]
    });

ControllerAs没有帮助...

出现问题的 HTML 片段 ( $ctrl.*):

<div class="entity-summary clear" ng-click="$ctrl.toggleInfo()"> 
  <div class="entity-col">
    {{$ctrl.entity.id}}
  </div>
  <div class="entity-col">
    {{$ctrl.entity.host}}
  </div> 
</div>
4

4 回答 4

4

不幸的是,Angular 1.5 组件尚未完全支持,请关注WEB-20339进行更新

于 2016-03-25T12:55:20.323 回答
4

您可以通过(错误)使用 ng-init="$ctrl=$ctrl" 来避免大部分噪音:

<div ng-init="$ctrl=$ctrl"         
     ng-click="$ctrl.toggleInfo()"
     class="entity-summary clear" > 
  <div class="entity-col">
    {{$ctrl.entity.id}}
  </div>
  <div class="entity-col">
    {{$ctrl.entity.host}}
  </div> 
</div>
于 2016-06-02T12:38:34.233 回答
1

我发现了一个不错的解决方法。

健康)状况

您必须至少使用 ES2016。

如果您有这样的组件:

export class MyComponent {

}

export const MyComponentController = {
  controller: MyComponent,
  templateUrl: require('./my-component.html')
};

您可以简单地添加以下行:

module.$ctrl = MyComponent;

然后 WebStorm 能够$ctrl在模板中解析。不幸的是,智能感知/自动完成仍然无法正常工作。

于 2018-01-10T14:46:55.087 回答
0

编辑:刚刚意识到这不是关于删除错误/警告,但无论如何都要留下这个答案:

我删除了 Editor > Inspections > Unresolved Javascript variable 中除 javascript 源范围(我已为我的项目设置)之外的所有内容的警告。它有点像“霰弹枪解决方案”,但我可以在没有这个检查 html 文件的情况下生活......

于 2016-11-25T08:39:08.810 回答