2016-08-20 67 views
0

我刚刚创建了一个简单的应用程序。 main controller的路线正在工作,但不是为另一个。 这是路线文件的代码AngularJS为控制器显示未定义的功能

$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页面,我收到此错误:

Error: [ng:areq] Argument 'SignatureController' is not a function, got undefined

也许它只是一个愚蠢的错误,由于一个错字或别的东西,但我仍然无法弄清楚

+0

您忘了自己调用控制器closure .. do()在末尾 – Developer

+0

检查您是否在您的html脚本中添加了脚本