angularJs如何让router和controller分成不同的文件?

controlller.js :

var app = angular.module('app', ['ngCookies', 'ui.router', 'ngFileUpload', 'tm.pagination']);
//路由配置
app.config(function($stateProvider, $urlRouterProvider){
   $stateProvider
   .state("home",{
     url: '/home',
     cache: false,
     template: '<div class="container"><div class="jumbotron"><h1></h1></div></div>',
     controller: "homeCtrl"
 })
   .state("about",{
     url: '/about',
     cache: false
 })
    $urlRouterProvider.otherwise("home");
})

想把about单独提取出来,放入新建的about.js中,但是,会出现错误:angular.js:14700 Error: [$controller:ctrlreg]

about.js:

var app = angular.module('app', ['ngCookies', 'ui.router', 'ngFileUpload', 'tm.pagination']);

app.controller('about',  function ($http, $scope, TipService, $timeout, $interval) {
      $scope.info = "xxx";  // xxx
  });

这样会出现错误:angular.js:14700 Error: [$controller:ctrlreg]
我在对应的about.html中也引入了这个about.js,也是没用。

这个问题,怎么解决?

阅读 1.9k
1 个回答
 .state('main.homePage.homePageMain', {
    url: '/main',
    views: {
        '': {
            template: require('widgets/homePage/homePageMain/homePageMain.html'),
            controller: 'homePageMainController'
        }
    },
    resolve: {
        loadDeps: ['$ocLazyLoad', function ($ocLazyLoad) {
            return require.ensure([], function () {
                var m1 = require('widgets/homePage/homePageMain/homePageMainController');
                $ocLazyLoad.inject([m1]);
            },'homePageMain');
        }]
    }
    })

是这种吗?

除了这种还有AMD模块的方式

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题