模板:未解析的变量或键入 $ctrl
template: unresolved variable or type $ctrl
如何告诉 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>
很遗憾Angular1.5组件还没有完全支持,请关注WEB-20339更新
您可以通过(误)使用 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>
编辑:刚刚意识到这不是要删除 error/warning 但无论如何都要留下这个答案:
我删除了编辑器 > 检查 > 未解决 Javascript 变量中的警告,除了 javascript 源范围(我已经为我的项目设置)。它有点 "shotgun solution" 但我可以在没有此检查的情况下生活 html 文件...
我找到了一个不错的解决方法。
条件
你必须至少使用 ES2016。
如果您有这样的组件:
export class MyComponent {
}
export const MyComponentController = {
controller: MyComponent,
templateUrl: require('./my-component.html')
};
您可以简单地添加以下行:
module.$ctrl = MyComponent;
然后 WebStorm 能够解析模板中的 $ctrl
。不幸的是,intellisense/autocomplete 仍然无法正常工作。
如何告诉 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>
很遗憾Angular1.5组件还没有完全支持,请关注WEB-20339更新
您可以通过(误)使用 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>
编辑:刚刚意识到这不是要删除 error/warning 但无论如何都要留下这个答案:
我删除了编辑器 > 检查 > 未解决 Javascript 变量中的警告,除了 javascript 源范围(我已经为我的项目设置)。它有点 "shotgun solution" 但我可以在没有此检查的情况下生活 html 文件...
我找到了一个不错的解决方法。
条件
你必须至少使用 ES2016。
如果您有这样的组件:
export class MyComponent {
}
export const MyComponentController = {
controller: MyComponent,
templateUrl: require('./my-component.html')
};
您可以简单地添加以下行:
module.$ctrl = MyComponent;
然后 WebStorm 能够解析模板中的 $ctrl
。不幸的是,intellisense/autocomplete 仍然无法正常工作。