Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
206 views
in Technique[技术] by (71.8m points)

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,也是没用。

这个问题,怎么解决?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
 .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模块的方式


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share

2.1m questions

2.1m answers

63 comments

56.7k users

...