让jshint与Angular JS一起玩得很好

时间:2014-12-07 23:21:49

标签: javascript angularjs jshint

在我的主app.js中,我定义了我的应用程序:

var app = angular.module('ccApp', ['ngCookies', 'ngResource', 'ngSanitize', 'ngRoute']);

在我的各种控制器文件中,我定义了控制器:

app.controller('LoginCtrl', function($scope, $log, $location, $rootScope, $window) {...

这些行都被标记为错误,jshint为" app未定义"。该应用程序正常;当脚本全部连接在一起时,它们会看到变量定义。

如何获得jshint"了解"这并没有将此标记为错误?

2 个答案:

答案 0 :(得分:1)

如果app是全局的,您可以在配置中预定义变量(因此jshint知道它们存在)(无论是通过.jshintrc文件还是其他方法:

{
  "predef": ["app"]
}

您也可以使用jshint的内联配置在每个文件的基础上执行此操作,方法是将此注释指令添加到文件的顶部:

/* global app */

答案 1 :(得分:0)

而不是使用

var app = angular.module('ccApp', ...

你应该使用

// in app.js once with dependencies
angular.module('ccApp', ['ngCookies', 'ngResource', 'ngSanitize', 'ngRoute')

// in component files
angular.module('ccApp')
    .controller('..', ...

应该照顾你的jshint。此外,如果您计划将您的应用程序重新用作库,那么您会遇到问题,因为您已经使用了全局变量(var app),或者其他人可能会在不知情的情况下使用它并遇到问题。 / p>