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

前端之家收集整理的这篇文章主要介绍了Angular配置Router(路由)提示Controller NaNunction/undefined错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

  • router.js
  1. var adminApp = angular.module('adminApp',['oc.lazyLoad','ui.router']);
  2. angular.element(document).ready(function () {
  3. angular.bootstrap(document,['adminApp']);
  4. });
  5.  
  6. adminApp.run(function ($rootScope,$state,$stateParams) {
  7. $rootScope.$state = $state;
  8. $rootScope.$stateParams = $stateParams;
  9. });
  10. adminApp.config(function ($stateProvider,$urlRouterProvider) {
  11. $urlRouterProvider.when("","dashboard/accountManagement");
  12. $urlRouterProvider.otherwise("dashboard/accountManagement");
  13. $stateProvider
  14. .state('dashboard',{
  15. url: '/dashboard',templateUrl: 'dashboard/dashboard.html',controller: 'dashboardController',resolve: {
  16. deps: ['$ocLazyLoad',function ($ocLazyLoad) {
  17. return $ocLazyLoad.load(['dashboard/dashboard.js']);
  18. }]
  19. }
  20. });
  21. });
  • dashboardController.js
  1. angular.module("adminApp").controller('dashboardController',function ($scope) {
  2. console.log("dashboardController");
  3. });

但是提示错误

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

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

  • router.js
  1. var adminApp = angular.module('adminApp',$urlRouterProvider,$controllerProvider) {
  2.  
  3. //以下是新加入的
  4. adminApp.controllerProvider = $controllerProvider;
  5.  
  6. $urlRouterProvider.when("",function ($ocLazyLoad) {
  7. return $ocLazyLoad.load(['dashboard/dashboard.js']);
  8. }]
  9. }
  10. });
  11. });
  • dashboardController.js
  1. angular.module("adminApp").controllerProvider.register('dashboardController',function ($scope) {
  2. console.log("dashboardController");
  3. });

猜你在找的Angularjs相关文章