Javascript 如何通过两个路由运行两个控制器?

Javascript 如何通过两个路由运行两个控制器?,javascript,html,angularjs,Javascript,Html,Angularjs,我有两个模块,其中有两条路线: angular .module('lang', ['ngRoute']) .config('lang', ['$routeProvider', config]) .controller('lang', lang); function config(route){ route.when('/:lang/:page', { template : '', controller : lang }) } 导向模块的设计和路线:

我有两个模块,其中有两条路线:

angular
  .module('lang', ['ngRoute'])
  .config('lang', ['$routeProvider', config])
  .controller('lang', lang);

function config(route){
  route.when('/:lang/:page', {
    template    : '',
    controller  : lang
  })
}
导向模块的设计和路线:

angular
  .module('guide', ['ngRoute'])
  .config('guide', ['$routeProvider', config])
  .controller('guide', guide);

function config(route){
  route.when('/:lang/guide', {
    template    : '/view/guide.html',
    controller  : guide
  })
}

但是第二个控制器没有运行。如何使用两个路由运行两个控制器?

ng用于SPA应用程序的路由

如果您希望导航到应用程序中的不同页面,但也希望该应用程序是SPA(单页面应用程序),且无需重新加载页面,则可以使用ngRoute模块

因此,您需要定义主模块,在那里配置路由并注入依赖项。例如:

var app = angular.module('app',['ngRoute', 'firstModule', 'secondModule']);
var configFunction = function($routeProvider){
$routeProvider
 .when('/:lang/:page', {
  templateUrl: '/view/guide.html',
  controller : 'FirstCtrl'
})    
 .when('/:lang/guide', {
  templateUrl: '/view/guide2.html',
  controller: 'SecondCtrl'
})
configFunction.$inject = ['$routeProvider'];

app.config(configFunction);

app.config(['$locationProvider',
    function ($locationProvider) {
        $locationProvider.hashPrefix('');       
    }]);
这是您的控制器:

var app = angular.module('firstModule', []);
app.controller('FirstCtrl',function(){});

var app = angular.module('secondModule', []);
app.controller('SecondCtrl',function(){});

注意语法。检查您使用的角度版本的语法。

ng路由用于SPA应用程序

如果您希望导航到应用程序中的不同页面,但也希望该应用程序是SPA(单页面应用程序),且无需重新加载页面,则可以使用ngRoute模块

因此,您需要定义主模块,在那里配置路由并注入依赖项。例如:

var app = angular.module('app',['ngRoute', 'firstModule', 'secondModule']);
var configFunction = function($routeProvider){
$routeProvider
 .when('/:lang/:page', {
  templateUrl: '/view/guide.html',
  controller : 'FirstCtrl'
})    
 .when('/:lang/guide', {
  templateUrl: '/view/guide2.html',
  controller: 'SecondCtrl'
})
configFunction.$inject = ['$routeProvider'];

app.config(configFunction);

app.config(['$locationProvider',
    function ($locationProvider) {
        $locationProvider.hashPrefix('');       
    }]);
这是您的控制器:

var app = angular.module('firstModule', []);
app.controller('FirstCtrl',function(){});

var app = angular.module('secondModule', []);
app.controller('SecondCtrl',function(){});
注意语法。检查您使用的角度版本的语法