【问题标题】:How to type hint $ctrl in AngularJS component template for WebStorm?如何在 WebStorm 的 AngularJS 组件模板中键入提示 $ctrl?
【发布时间】:2019-06-29 04:15:39
【问题描述】:

有没有办法告诉 WebStorm $ctrl 在 AngularJS (v1) 组件 HTML 模板文件中是哪种类型?

如果是 JavaScript 文件,我可以使用 JSDoc,WebStorm 会使用该信息,并正确检测未使用的方法等。

WebStorm 的文档介绍了 Angular 插件,但该插件似乎不适用于较新的 AngularJS 组件,只能用于较旧的 ng-controller 样式。

【问题讨论】:

    标签: javascript angularjs webstorm


    【解决方案1】:

    根据 WebStorm 2018.3 的 release notes,此问题已解决。

    AngularJS 改进

    我们知道很多人仍在使用 AngularJS。 这就是为什么我们修复了影响 AngularJS 的投票最多的问题 WebStorm 中的支持:$ctrl 的完成和解析,或 使用模板中的controllerAs 属性定义的名称。

    所以,如果你最近没有更新 WebStorm,我会先尝试一下。

    否则,有一种解决方法。您可以在模板中的 ngInit 指令中执行类似的操作:

    <div ng-init="$ctrl=$ctrl"></div>        
    

    这应该可以解决问题。但这可能是一个丑陋的解决方法。如果您最近没有更新,我会先尝试更新。

    【讨论】:

    • 不错。我没有注意到,虽然我已经在使用它了。 Webstorm 2018.3 似乎在他们自己的指令(如 ng-if)中为$ctrl 带来了一些支持,但它仍然不适用于自定义用户定义的组件及其模板内的属性绑定。也不适用于通过方法名称跳转到定义,即使跳转确实适用于 $ctrl 本身。
    • @jheusala 您可能想查看 WebStorm 的 issue tracker filtered for AngularJS。我也使用 WebStorm 和 AngularJS,有时我会发现一些不错的解决方法来解决尚未在 WebStorm 中实现的功能。
    猜你喜欢
    • 2015-11-06
    • 1970-01-01
    • 2020-01-29
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 2023-03-19
    相关资源
    最近更新 更多