4

我的路由设置是这样的:

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',
...

但无法弄清楚如何将该前缀注入我的配置方法。

4

1 回答 1

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})
于 2013-09-10T09:17:57.953 回答