WebStorm - “angular”未定义

时间:2014-02-09 22:41:24

标签: angularjs webstorm

注意:这是一个WebStorm问题,而不是angular.js问题。

问题的截屏视频:http://f.cl.ly/items/302s0d1k1i3i1B2p0W09/ws703-angular-not-defined.mp4

说明

我的index.html文件中有以下内容:

<script src="vendor/js/angular.min.js"></script>
<script src="app/js/scratch.js"></script>

在scratch.js中,当我引用“angular”时,我不断从JSHint获取这个“angular is not defined”消息。我如何使它如此角度看起来像在这个文件中定义,所以JSHint停止抱怨它?这是配置问题吗?请指教。

WebStorm v7.0.3 / Mac OSX v10.9.1

5 个答案:

答案 0 :(得分:39)

Webstorm settings > JavaScript > Code Quality Tools > JSHint 

有&#34; Predefined&#34;线。点击&#34;设置&#34;在它的旁边。在这里,您可以添加所有预定义的变量。

答案 1 :(得分:23)

documentation page of JSHint中的第一个示例如下:

  

配置文件是一个简单的JSON文件,它指定要打开或关闭的JSHint选项。例如,以下文件将启用有关未定义和未使用变量的警告,并告诉JSHint有关名为MY_GLOBAL的全局变量。

{
  "undef": true,
  "unused": true,
  "globals": { "MY_GLOBAL": false }
}

MY_GLOBAL替换为angular,您将不再有此JSHint警告。

答案 2 :(得分:3)

如果有帮助:

我使用自耕农(yo angular)来支撑一个基本项目并得到相同的角度没有定义&#39; WebStorm 8中的问题(我默认使用AngularJS插件)。但是,我已经看到其他人这样做,并没有同样的问题。

上面选择的解决方案在JSHint中是正确的,需要告知名为&#34; angular&#34;的全局变量。但是,如果使用yeoman,则必须在.jshintrc(脚手架目录中的文件)中定义所需的配置设置。

所以你需要做的就是让JSHint使用这些作为项目的默认设置。为此,我发现以下SO线程对于显式设置该配置文件的位置很有用。 JSHint behave differently in Webstorm and Grunt

在WebStorm 8中,您将看到一个名为&#34;使用配置文件&#34;的选项。 - 检查将自动在项目层次结构中查找.jshintrc文件。选择此选项将使角度未定义&#39;问题消失了。

答案 3 :(得分:2)

转到Settings > Plugins并下载WebStorm的AngularJS插件。这是我在使用AngularJS和WebStorm之前做的第一件事,我从未见过这个问题。

WebStorm的第8版将完全融入AngularJS,但就目前而言,该插件应该有所帮助。

编辑:好的,我想我可能找到了另一种可能的解决方案。如你所说,这是一个WebStorm问题。代码中没有实际错误,它只是代码检查。您可以这样关闭此检查:

转到settings > inspections > JavaScript > General并取消选中"unresolved JavaScript variable""unresolved JavaScript function"

这应该会使错误消失。我在关于Pluralsight的AngularJS教程中找到了这个。

答案 4 :(得分:1)

要使WebStorm(2016+)正确识别angularjs甚至启用代码完成,只需转到:

File > Settings

然后在左侧选择:

Languages & Frameworks > JavaScript > Libraries

选中&#39; angular&#39;旁边的复选框。然后单击“应用”如果列表中未显示角度,则需要点击“添加”按钮。并浏览到您下载库的任何地方。