注意:这是一个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
答案 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;旁边的复选框。然后单击“应用”如果列表中未显示角度,则需要点击“添加”按钮。并浏览到您下载库的任何地方。