AngularJS показывает неопределенную функцию для контроллера

angularjs

64 просмотра

1 ответ

Я только что создал простое приложение. Маршрут для main controllerработает, но не для другого. Это часть кода файла маршрута

$routeProvider
  .when('/', {
    templateUrl: 'app/main/main.html',
    controller: 'MainController',
    controllerAs: 'main'
  })
  .when('/signatures', {
    templateUrl: 'app/components/signature/signature.html',
    controller: 'SignatureController',
    controllerAs: 'signature',
    resolve: {
      signatureLists: function(SignatureService){
        return SignatureService.getSignatures();
      }
    }
  })
  .otherwise({
    redirectTo: '/'
  });

и ниже контроллер

(function() {
  'use strict';

  angular
    .module('demoapp')
    .controller('SignatureController', SignatureController);

  /** @ngInject */
  function SignatureController(signatureLists) {
    var vm = this;
    vm.signatures = signatureLists;
  }
})

Я определил модуль в другом файле:

(function() {
  'use strict';

  angular
    .module('demoapp', ['ngRoute', 'toastr']);

})();

когда я пытаюсь посетить /signaturesстраницу, я получаю эту ошибку:

Ошибка: [ng: areq] Аргумент 'SignatureController' не является функцией, получил неопределенное значение

Может быть, это просто глупая ошибка из-за опечатки или чего-то еще, но все же я не могу понять это

Автор: Sajan Источник Размещён: 08.11.2019 10:59

Ответы (1)


1 плюс

Решение

Вы забыли самостоятельно вызвать закрытие контроллера..do a () в конце

(function() {
 'use strict';

 angular
 .module('demoapp')
 .controller('SignatureController', SignatureController);

 /** @ngInject */
 function SignatureController(signatureLists) {
  var vm = this;
  vm.signatures = signatureLists;
 }
})()
Автор: Developer Размещён: 20.08.2016 06:59
Вопросы из категории :
32x32