2014-12-07 36 views
1

在我的主app.js,我定义我的应用程序:获取jshint发挥好与角JS

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

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

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

这些线所有标记为jshint的错误为“应用程序未定义”。该应用程序工作正常;当脚本全部连接时,它们会看到变量定义。

我该如何让jshint“理解”这一点,而不是将其标记为错误?

+0

你在使用IDE – 2014-12-07 23:25:40

+0

你只需要读jshint文档http://jshint.com/docs/:加入此评论指令文件的顶部jshint的串列式结构-file基础 – 2014-12-07 23:27:12

回答

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),或者其他人可能会在不知道并遇到问题的情况下使用它。

+0

我曾经这么做过,但一位高级同事说要以另一种方式去做... Oy。 – Steve 2014-12-07 23:27:54

+0

这是推荐的方式。也如前所述,它照顾污染全球变量空间。 – zwacky 2014-12-07 23:29:09

+0

我认为这个想法是让这些文件能够被放入任何应用程序,该应用程序具有为特定应用程序或库而不是任何应用程序开发的主要模块“应用程序” – Steve 2014-12-07 23:29:34

1

如果app是全球性的,你可以在你的配置预定义变量(所以jshint知道他们存在)(是否通过.jshintrc文件或其他方法是:

{ 
    "predef": ["app"] 
} 

你也可以做到在每?

/* global app */