为什么AngularJS指令(属性等)在WebStorm 8中显示为“无效”?

12

我在几个小时前刚安装了WebStorm 8。 我一直在写一些AngularJS的东西,但有一个相当令人烦恼的小问题。 AngularJS插件似乎只部分工作, 每当我输入ng-时,会出现一个智能感知弹出窗口,显示所有各种ng-*属性。 然而,这就是事情停止工作的地方。 在.js文件或.html文件中,我似乎没有获得更高级的智能感知功能。 如果我在app.js中创建名为“app”的angular模块,则在HTML文件中键入ng-app=时不会显示“app”。 此外,在编辑html文件时,WebStorm将所有ng-*属性突出显示为无效的html。 其它AngularJS功能也似乎都无法工作,例如绑定中的智能感知。

我在这里找到了一些主题,表明我可能需要将AngularJS作为JavaScript库添加到项目设置中...但是,如何正确执行此操作没有任何指导。 SO上的主题非常简短,并链接到WebStorm文档,该文档非常一般,没有任何具体的细节。 如何在WebStorm中设置AngularJS作为JS库? 这真的必要吗?

需要注意的是,AngularJS确实出现在WebStorm的设置中作为插件,并且已经选中。 我基本上只有ng-*属性智能感知,但是我没有得到WebStorm 8应该带有的任何其他AngularJS增强支持。 我已经完全安装和卸载了webstorm几次。 不太确定接下来该怎么做...

4个回答

17

要将AngularJS添加为项目库,请转到

Preferences > Project Settings > JavaScript > Libraries > Add

然后选择Angular目录以添加它。

我在Mac上,但Windows应该大致相似。

您也可以执行

ctrl/cmd + shift + a

到任何地方,输入“libraries”即可到达同一位置。

注意:我在我的主HTML文件中通过https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js引用了Angular,并且它可以正常工作,无需将其添加为库。

编辑:

来自Webstorm博客的建议:如果您喜欢使用CDN,请将光标置于突出显示的库名称上,按Alt + Enter,然后下载库。这将在WebStorm的缓存(而不是您的项目)中设置本地库,以便WebStorm可以访问AngularJS方法、指令等,以进行自动完成和文档查找。


我曾经将它从CDN引用,所以我认为这是问题的一部分。最终我不得不删除项目中的所有内容,并重新创建它,才能在本地下载Angular后正确连接所有内容。有些东西似乎仍然不太正常...例如使用ng-controller="MyCtrl as my"并通过my.whatever引用作用域,在智能感知方面似乎无法正常工作,甚至在运行时也是如此。我已经恢复到只是直接绑定模型和其他内容,而没有虚拟命名空间,使用ng-controller="MyCtrl" - jrista
这仍然是一个相对较新的功能,因此可能会存在一些错误。 - Asta
是的,我认为可能还有一些漏洞存在。现在它已经足够好了,我可以完成大多数任务,而且我对Angular还比较新,所以并不像我是一个每小时能够输出几千行代码的强大程序员,也不需要一个完美运行的智能感知系统。 - jrista
我有同样的问题,但我正在使用Ionic和IntelliJ,我能添加相同的库而不破坏项目吗? - taquionbcn

5
请确保您安装了JetBrains AngularJS插件。

4
你是否在HTML中从CDN引用AngularJS?如果是,请下载Angular并在HTML中引用本地副本。然后,Angular功能应该开始工作了。或者你可以直接点击html中的angular CDN路径,按下Alt+Enter,选择类似于“下载库”的选项。

7
重要提示!请确保你所配置的angular.js库(或添加到你的项目中的)是未压缩的debug版本。如果使用被压缩过的版本,智能感知将无法工作。 - lena
谢谢,我确实从CDN引用了它。我觉得这是问题的一部分。 - jrista

0

为了在IntelliJ中解决这个问题,我下载了Angular库。

以下是步骤。

要为使用的库或框架添加TypeScript定义文件,请转到首选项|语言和框架|JavaScript|库-单击下载并通过键入名称搜索所需的库,然后再次点击下载。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接