2013-11-20 4 views
1

У меня возникли проблемы с поиском, почему мой контроллер не определен в моем стеке MEAN. Каждый другой контроллер работает нормально.MEAN стек угловой контроллер не определено

Error: Argument 'ReportsController' is not a function, got undefined 
at assertArg (http://localhost:3000/lib/angular/angular.js:1039:11) 
at assertArgFn (http://localhost:3000/lib/angular/angular.js:1049:3)..... 

app.js

window.app = angular.module('mean', ['ngCookies', 'ngResource', 'ui.bootstrap', 'ui.route', 'mean.system', 'mean.articles', 'mean.reports', 'angularFileUpload']); 

angular.module('mean.system', []); 
angular.module('mean.articles', []); 
angular.module('mean.songs', []); 
angular.module('mean.reports', []); 

reports.js

angular.module('mean.reports'). 
controller('ReportsController', 
    ['$scope', '$routeParams', '$location', 'Global', 'Reports', 
     function ($scope, $routeParams, $location, Global, Reports) { 
      $scope.global = Global; 
      $scope.find = function() { 
        Reports.query(function(reports) { 
         $scope.reports = reports; 
        } 
       ); 
      }; 
     } 
    ] 
); 

routes.js

//report routes 
var reports = require('../app/controllers/reports'); 
app.get('/reports', reports.all); 
app.post('/reports', auth.requiresLogin, reports.create); 
app.get('/reports/:reportId', reports.show); 
app.put('/reports/:reportId', auth.requiresLogin, auth.report.hasAuthorization, reports.update); 
app.del('/reports/:reportId', auth.requiresLogin, auth.report.hasAuthorization, reports.destroy); 


//Finish with setting up the reportId param 
app.param('reportId', reports.report); 

EDIT: Fixed - см комментарии

+0

По-видимому, я не добавил службу приложения и контроллер в свой файл «foot.jade». ЧТО ИСПРАВЛЕНО ВСЁ – user2884693

+0

Без изменений для кода контроллера? –

+0

Да, мне не нужно было менять код контроллера – user2884693

ответ

1

Вы получили эту ошибку, потому что ваше определение контроллера в reports.js есть ошибки: отсутствие заключения ), }, ] ...

Из-за того, что она не признается в качестве функции по функции углового assertArg(), которая бросает ошибку.

Это должно быть что-то подобное (я развернуть его, чтобы получить ошибки легче):

angular.module('mean.reports'). 
    controller('ReportsController', 
     ['$scope', '$routeParams', '$location', 'Global', 'Reports', 
      function ($scope, $routeParams, $location, Global, Reports) { 
       $scope.global = Global; 
       $scope.find = function() { 
        Reports.query(function(reports) { 
          $scope.reports = reports; 
         } 
        ); // <-- missing 
       }; // <-- missing 
      } // <-- misssing 
     ] // <-- missing 
    ); 
    }; // is seems that should be deleted 

Каждое отверстие (, [ или { должны быть надлежащим образом закрыты ), ] или }.

+1

Я развернул его для вас - это то же самое, что и ваш код, за исключением того, что у меня нет дополнительного кронштейна в конце. Я все еще получаю ту же ошибку – user2884693

Смежные вопросы