2014-06-11 331 views
0

我有一個非常簡單的Angular JS應用程序,我無法弄清楚爲什麼我得到一個錯誤:錯誤:[ng:areq]參數'CoursesController'不是一個函數,得到未定義Angular JS無法註冊控制器

我的小提琴(你需要打開你的瀏覽器開發工具看到控制檯錯誤):http://jsfiddle.net/Y4c2q/

我的角度JS代碼:

'use strict'; 
console.log('reg module entry'); 
var registrationModule = angular.module('registrationModule', []); 

registrationModule.controller('CoursesController', function ($scope, bootStrappedData) { 
    $scope.courses = bootStrappedData.courses; 
    console.log('inside of controller'); 
}); 

registrationModule.factory('bootStrappedData', function() { 
    console.log('bootstrapping our data'); 
    return { 
courses: [{"number":"aaa","name":"magical creatures","instructor":"John"}, 
      {"number":"bbb","name":"ze dark arts","instructor":"Rob"}, 
      {"number":"ccc","name":"third book","instructor":"Bran"}] 
    }; 
}); 

這就是我想要的HTML顯示我的3行數據:

<div ng-controller="CoursesController"> 
    <table class="table table-condensed table-hover"> 
     <tr> 
      <th>Course</th> 
      <th>Course Name</th> 
      <th>Instructor</th> 
     </tr> 
     <tr ng-repeat="course in courses"> 
      <td>{{course.number}}</td> 
      <td>{{course.name}}</td> 
      <td>{{course.instructor}}</td> 
     </tr> 
    </table> 
</div> 
+0

你的應用程序是如何引導的?通過'ng-app'或手動? 'registrationModule'是否標記爲主應用程序模塊的依賴關係? – package

+0

你檢查過我的小提琴嗎?如果我正確理解你的問題,根據這個鏈接(https://docs.angularjs.org/guide/bootstrap)我很確定我使用了自動引導。 – Tomas

回答

4

由於您的ng-app聲明缺少模塊名稱,此錯誤即將到來。使用此

ng-app='registrationModule'

這將在您的模塊和控制器連接到視圖。