我的路由设置如下:
angular.module('MyApp', ['MyApp.controllers']).
config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/foo', {
templateUrl: '/fooTemplate',
controller: 'FooCtrl'
});
}]
);
我想要做的是在运行时为'/ foo'添加前缀,因此根据我的应用程序的配置方式,路径可能是/ foo,可能是/ some / arbitrary / path / foo等等
理想情况下,我可以写一些类似的东西:
...
$routeProvider.when(prefix + '/foo', {
templateUrl: '/fooTemplate',
...
但无法弄清楚如何将这个前缀注入我的配置方法。
答案 0 :(得分:3)
应该是这样的:
.when('/:prefix/foo', {templateUrl: 'details.html', controller: DetailsCtrl})
然后prefix
将通过$routeParams
在控制器中提供。如果您希望它处理没有前缀的选项foo
,只需将其放在路由中并确保它在上面的示例之前。
.when('/foo', {templateUrl: 'details.html', controller: DetailsCtrl})
.when('/:prefix/foo', {templateUrl: 'details.html', controller: DetailsCtrl})