2014-12-07 67 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 */