2015-07-12 47 views
1

每次保存myApp.js CodeKit都會給我一個警告。當我通過CodeKit預覽加載index.html時,firstNamelastName變量顯示正常。我只想讓這個問題消失。使用Codekit時未定義'angular'

"var app = angular.module("myApp", []); 
'angular' is not defined" 

這裏是我的兩個文件index.htmlmyApp.js

的index.html:

<html> 
<script src="angular/angular.js"></script> 
<script src="myApp.js"></script> 

<body ng-app="myApp" ng-controller="myCtrl"> 
    <div> 
     {{ firstName + " " + lastName }} 
    </div> 
</body> 
</html> 

myApp.js:

var app = angular.module("myApp", []); 

app.controller("myCtrl", function($scope) { 
    $scope.firstName = "John"; 
    $scope.lastName= "Doe"; 
}); 
+0

你有沒有試圖把NG-應用= 「對myApp」 在標籤? –

+0

這與ng-app無關@RenanLopesFerreira –

+0

@RenanLopesFerreira是的,我剛剛嘗試過,我仍然收到警告。 – jakethecool1

回答

1

這是發生由於代碼掉毛過程它正在積極搜索語法錯誤。不幸的是,它沒有意識到angular是一個全局變量,它可用於您的腳本文件,因爲它是在不同的文件中聲明的。它實際上在瀏覽器(或預覽窗格)中工作,但Linting不知道angular的存在。

您可以在您的JavaScript文件頂部添加/// <reference path="angular/angular.js" />,以通知語法檢查器實際聲明angular變量的位置。

4

我還沒有嘗試過Claies的解決方案,但是我們在我們的項目中做的只是把它註冊爲一個全局的,這樣Codekit就不會抱怨。只有在確定你有角度定義的情況下才能做到這一點,否則會隱藏錯誤。

選項1 - 對於jshint

把你的JS文件中的以下內容:

/*global angular:true */ 

參考:https://incident57.com/codekit/help.html#jshint

選擇2 - 兩個jshint和JSLint的

或者,您可以在Codekit配置定義全局:

  1. 在Codekit,打開「項目設置」
  2. 選擇「語法檢查」
  3. 在「自定義全局」文本框,你可以輸入一個列表逗號分隔的變量和函數,你知道是在JS 腳本以外的其他地方定義的。

參考:https://incident57.com/codekit/help.html#jslint

+0

僅供參考,我知道這是來自3年前,但我仍然在Google上遇到過這種情況,並且認爲需要對其他人進行其他選擇/進一步解釋。否則他們會認爲Claies的參考路徑答案是唯一的選擇。始終最好呈現多個選項/路線。 – redfox05