2015-07-10 68 views
6

我只是想讓我的頭瞭解AngularJS的基礎知識。我試圖編寫一個簡單的MVC應用程序,但控制器似乎沒有工作。該文件可以找到剛纔找到的角度庫,我已經通過排除'ng-controller'來測試。AngularJS初學者:ng控制器不工作

<!DOCTYPE html> 
<html ng-app> 
<head> 
    <script src='js/lib/angular.js'></script> 
    <script> 
     // controller 
     function MyFirstCtrl($scope) { 
      // model 
      var employees = ['Christopher Grant', 'Monica Grant', 'Christopher 
      Grant', 'Jennifer Grant']; 

      $scope.ourEmployees = employees; 
     } 
    </script> 
</head> 
<body ng-controller='MyFirstCtrl'> 
    <!-- view --> 
    <h2>Number of employees: {{ourEmployees.length}}</h2> 
</body> 
</html> 

編輯: 錯誤日誌說以下內容:

Uncaught SyntaxError: Unexpected token ILLEGAL , line 9 
Uncaught SyntaxError: Unexpected token { , line 19 
Error: [ng:areq] Argument 'MyFirstCtrl' is not a function, got undefined 

EDIT2:我改變了代碼如下:

<!DOCTYPE html> 
<html ng-app='MVCExample'> 
<head> 
    <script src='js/lib/angular.js'></script> 
    <script> 
     var app = angular.module('MVCExample', []); 

     // controller 
     app.controller("MyFirstCtrl", function($scope) { 

      // model 
      var employees = ['Christopher Grant', 'Monica Grant', 'Christopher Grant', 'Jennifer Grant']; 

      $scope.ourEmployees = employees; 
     }); 
    </script> 
</head> 
<body ng-controller='MyFirstCtrl'> 
    <!-- view --> 
    <h2>Number of employees: {{ourEmployees.length}}</h2> 
</body> 
</html> 

它還原來, '僱員' 陣列因爲我有一個字符串入口分成兩行,所以我是非法的。以上作品。我使用的初學者書籍必須過時,這是不幸的。

+0

你能保證嗎? – Vineet

+0

錯誤控制檯說什麼?確保'Christopher'和'Grant'之間沒有實際的換行符。 – Ronnie

+0

我正在使用1.4.2。 – BrianRT

回答

10

如果您使用angularjs 1.3+版本然後像上面你做,你不能聲明全局控制器。

你應該像下面這樣初始化。

<div ng-app="appname" ng-controller="MyFirstCtrl"> 
var app = angular.module('appname', []); 
app.controller('MyFirstCtrl',function(){ 
    //controller code here 
}); 
2

我不知道你是如何初始化的angularjs應用,不知道是否已經包含在JS文件已鏈接,但原則上,你應該有這樣的事情:

var app = angular.module("appName", []).controller("ControllerName", function ($scope){ 
    //your controller code here 
}); 

然後在你的HTML代碼是這樣的:

<html ng-app="appName"> 
+0

這是行得通的!謝謝。 – BrianRT

-1

控制器添加到角應用模塊您正在使用哪個角度js版

.module('LogIn') 
.controller('LoginController', LoginController) 

image