2015-07-10 21 views
6

Tôi chỉ đang cố gắng làm quen với những điều cơ bản của AngularJS. Tôi đã thử viết một ứng dụng MVC đơn giản, nhưng bộ điều khiển dường như không hoạt động. Các tập tin có thể tìm thấy angular lib chỉ tìm thấy, tôi đã thử nghiệm rằng bằng cách loại trừ 'ng-controller'.AngularJS người mới bắt đầu: ng-controller không hoạt độ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> 

EDIT: Nhật ký lỗi nói như sau:

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: Tôi đã thay đổi mã này:

<!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> 

Nó cũng bật ra rằng mảng 'nhân viên' rằng tôi đã có được bất hợp pháp kể từ khi tôi đã có một mục nhập chuỗi chia thành hai dòng. Các công trình trên. Cuốn sách mới bắt đầu tôi đang sử dụng phải lỗi thời, điều không may.

+0

Bạn có thể đảm bảo với tôi mà góc js phiên bản bạn đang sử dụng? – Vineet

+0

Bảng điều khiển lỗi nói gì? Đảm bảo không có ngắt dòng thực sự giữa 'Christopher' và' Cấp'. – Ronnie

+0

Tôi đang sử dụng 1.4.2. – BrianRT

Trả lời

10

Nếu bạn đang sử dụng phiên bản angularjs 1.3+ thì bạn không thể tuyên bố điều khiển toàn cầu như trên bạn đang làm.

Bạn nên khởi chạy như dưới đây.

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

Tôi không thấy như thế nào bạn đang initialising ứng dụng angularjs, không biết nếu điều đó đã được bao gồm trong js file bạn đã liên kết, nhưng về nguyên tắc, bạn nên có một cái gì đó như thế này:

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

Và sau đó có một cái gì đó trong mã HTML của bạn như:

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

Điều đó có hiệu quả! Cảm ơn bạn. – BrianRT

-1

Thêm bộ điều khiển để các module ứng dụng góc

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

image

Các vấn đề liên quan