【发布时间】:2015-03-08 06:25:21
【问题描述】:
我正在尝试以下代码,但没有成功:
MyApp.config(['$routeProvider', '$provide', function($routeProvider, $provide) {
$routeProvider
.when('/', {
redirectTo: '/'
})
.when('/:page', {
templateUrl: function($routeParams) {
return 'views/'+ $routeParams.page +'.html';
},
})
.when('/:page/:child*', {
templateUrl: function($routeParams) {
return 'views/'+ $routeParams.page + '/' + $routeParams.child + '.html';
},
controller: function($routeParams) {
return $routeParams.child + '.' + $routeParams.page + 'Controller';
},
})
.otherwise({
redirectTo: '/'
});
}]);
我想要完成的是使用基于 $routParams 变量的函数为每个视图定义控制器:
controller: function($routeParams) {
return $routeParams.child + '.' + $routeParams.page + 'Controller';
},
虽然它与 templateUrl 一起工作得很好,但当我定义控制器时它似乎不起作用。
【问题讨论】:
-
我可能只是错过了一些东西,但
.when('/', { redirectTo: '/' })是不是有点奇怪?这不会导致循环吗? -
我不知道,它对我有用,(即使我意识到我可以删除它,因为我声明了其他情况)
-
当您在控制器中运行时,它会创建一个新控制器并分配给该模板
标签: javascript angularjs url-routing single-page-application angularjs-routing