Angular在页面标题中使用$ routeParams

时间:2013-12-30 00:20:17

标签: angularjs angular-routing

我在另一个SO问题中找到了这个answer。但我还想在一些页面标题中使用路由参数。

如果我有$routeProvider这样的话:

$routeProvider.when('/demo/:name/:idNumber', {title : ' - :name', templateUrl: 'partials/details.html', controller: 'AppDetails'}); 

如何将标题中的:name与该位置的:name相匹配?我尝试了以下

.run(['$location', '$rootScope', '$routeParams', function($location, $rootScope,   $routeParams) {
  $rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
    if(current.$$route.title.contains(":")){
        //Not sure how to get the route param using the title param string
    }else{
      $rootScope.title = current.$$route.title;
    }
  });
}]);

但我不知道如何使用字符串从routeParams获取变量。

2 个答案:

答案 0 :(得分:2)

你不能像这样访问它:

$routeParams[$routeParams.title]

我认为这就是你所要求的,但我不太确定......

答案 1 :(得分:2)

在routeChangeSuccess处理程序中,我添加了

var title = currentRoute.$$route.title;
if (title && $routeParams){
    for(var paramName in $routeParams) {
        title = title.replace(new RegExp(':' + paramName, 'g'), $routeParams[paramName]);
    }
}
$rootScope.title = title;