我有两个模块,其中有两条路线:
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
})
}
但是第二个控制器没有运行。如何使用两条路径运行两个控制器?
答案 0 :(得分:0)
ng-route用于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(){});
请注意语法。检查您使用的Angular版本的语法。