2013-08-05 88 views
3

所以我已經知道當我看到答案的時候我會感到非常愚蠢,但是我正在通過egghead.io上的AngularJS教程進行工作。當我這樣做:AngularJS不承認控制器

<!DOCTYPE html> 
<html> 
    <head> 
     <title>AngularJS Tutorials</title> 
     <link rel="stylesheet" href="/foundation/stylesheets/foundation.min.css"> 
     <script src="js/main.js"></script> 
     <script src="lib/angular/angular.js"></script> 
    </body> 
    </head> 
    <body> 
     <div ng-app="myApp"> 

      <div ng-controller="FirstCtrl"> 
       <input type="text" ng-model="data.message"> 
       <h1>{{ data.message }}</h1> 
      </div> 

      <div ng-controller="SecondCtrl"> 
       <input type="text" ng-model="data.message"> 
       <h1>{{ data.message }}</h1> 
      </div> 
     </div> 
</html> 

與我的JavaScript文件作爲這樣(名爲main.js):

var myApp = angular.module('myApp', []); 
myApp.factory('Data', function() { 
    return { message: "I'm data from a service"} 
}) 

function FirstCtrl($scope, Data) { 
    $scope.data = Data; 
} 

function SecondCtrl($scope, Data) { 
    $scope.data = Data; 
} 

{{ data.message }}不被識別爲一個AngularJS結合(即在頁面它顯示瞭如
{{ data.message }}而不是"I'm data from a service")。但是,如果我將所有JS代碼直接放入HTML中,則它可以正常工作。我錯過了一個參考或其他東西?似乎沒有找到這個地方,可能是因爲它非常基礎。

+0

正如我所說...我覺得D-U-M-B。 –

回答

2

後我要去JUMP THE GUN並建議您切換這些

<script src="js/main.js"></script> 
<script src="lib/angular/angular.js"></script> 

<script src="lib/angular/angular.js"></script> 
<script src="js/main.js"></script> 

如果這工作那麼這是因爲在此之前,你試圖使用的角度,當它不是事件時加載。


提示


現在,當我第一次使用javascript開始,這些類的使用在我身上發生了很多事情。最好的辦法是學習如何使用console它會告訴你在控制檯沿線cannot read property 'module' of undefined,這意味着angularundefined,因此沒有加載。

+0

那麼,憑藉速度,我會接受你的......當它讓我......是的,意識到我是一個白癡。感謝您的高舉。 –

+0

好的,很酷。在答案中增加了一條提示。 – iConnor

+0

這是一個很好的觀點。絕對沒有使用控制檯,因爲我應該。 –

1

裝入控制器前角,後不字裏行間

1

開關:

<script src="js/main.js"></script> 
<script src="lib/angular/angular.js"></script> 

你需要運行main.js角加載