Angular配置Router(路由)提示Controller NaNunction/undefined错误

在配置Angular 路由的时候,和以往一样使用如下配置:

  • router.js
var adminApp = angular.module('adminApp', ['oc.lazyLoad', 'ui.router']);
angular.element(document).ready(function () {
    angular.bootstrap(document, ['adminApp']);
});

adminApp.run(function ($rootScope, $state, $stateParams) {
    $rootScope.$state = $state;
    $rootScope.$stateParams = $stateParams;
});
adminApp.config(function ($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.when("", "dashboard/accountManagement");
    $urlRouterProvider.otherwise("dashboard/accountManagement");
    $stateProvider
        .state('dashboard', {
            url: '/dashboard',
            templateUrl: 'dashboard/dashboard.html',
            controller: 'dashboardController',
            resolve: {
                deps: ['$ocLazyLoad', function ($ocLazyLoad) {
                    return $ocLazyLoad.load(['dashboard/dashboard.js']);
                }]
            }
        });
});
  • dashboardController.js
angular.module("adminApp").controller('dashboardController', function ($scope) {
    console.log("dashboardController");
});

但是提示错误:

angular.min.js:118 Error: [ng:areq] http://errors.angularjs.org/1.5.8/ng/areq?p0=dashboardController&p1=not%20aNaNunction%2C%20got%20undefined
    at http://localhost:63342/static/plugin/angular-1.5.8/angular.min.js:6:412
    at sb (http://localhost:63342/static/plugin/angular-1.5.8/angular.min.js:23:18)
    at Pa (http://localhost:63342/static/plugin/angular-1.5.8/angular.min.js:23:105)
    at http://localhost:63342/static/plugin/angular-1.5.8/angular.min.js:89:310
    at Object.<anonymous> (http://localhost:63342/static/plugin/angular-1.5.8/angular-ui-router.js:3971:42)
    at http://localhost:63342/static/plugin/angular-1.5.8/angular.min.js:16:71
    at la (http://localhost:63342/static/plugin/angular-1.5.8/angular.min.js:81:90)
    at p (http://localhost:63342/static/plugin/angular-1.5.8/angular.min.js:66:341)
    at g (http://localhost:63342/static/plugin/angular-1.5.8/angular.min.js:58:481)
    at http://localhost:63342/static/plugin/angular-1.5.8/angular.min.js:58:119

原因是因为直接写controller无法识别,所有需要使用register来注册该controller

  • router.js
var adminApp = angular.module('adminApp', ['oc.lazyLoad', 'ui.router']);
angular.element(document).ready(function () {
    angular.bootstrap(document, ['adminApp']);
});

adminApp.run(function ($rootScope, $state, $stateParams) {
    $rootScope.$state = $state;
    $rootScope.$stateParams = $stateParams;
});
adminApp.config(function ($stateProvider, $urlRouterProvider, $controllerProvider) {

    //以下是新加入的
    adminApp.controllerProvider = $controllerProvider;

    $urlRouterProvider.when("", "dashboard/accountManagement");
    $urlRouterProvider.otherwise("dashboard/accountManagement");
    $stateProvider
        .state('dashboard', {
            url: '/dashboard',
            templateUrl: 'dashboard/dashboard.html',
            controller: 'dashboardController',
            resolve: {
                deps: ['$ocLazyLoad', function ($ocLazyLoad) {
                    return $ocLazyLoad.load(['dashboard/dashboard.js']);
                }]
            }
        });
});
  • dashboardController.js
angular.module("adminApp").controllerProvider.register('dashboardController', function ($scope) {
    console.log("dashboardController");
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值