AngularJS显示控制器的未定义函数

时间:2016-08-20 06:54:51

标签: angularjs

我刚刚创建了一个简单的应用程序。 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'不是函数,未定义

也许这只是一个愚蠢的错误,因为一个错字或其他东西,但我仍然无法弄清楚

1 个答案:

答案 0 :(得分:1)

你忘了自己调用控制器闭包......最后一个()

(function() {
 'use strict';

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

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