在配置对象中解析$ routeParams

时间:2015-06-25 15:05:23

标签: angularjs

我正在尝试为我的角度应用的每个页面动态设置标题。我在$ routeProvider配置中设置页面的标题,如下所示:

angular.module('app.assets').config(['$routeProvider', function($routeProvider) {
        $routeProvider. 
            when('/assets/:id', {
               templateUrl: 'app/components/assets/views/view.tpl.html',
               controller: 'AssetViewCtrl',
               data : { 
                 pageTitle: 'Assets:id' 
               }               
        });    
}]);

问题是页面标题现在是'资产:id'逐字。是否可以解析' id'的价值?类似于when的第一个参数?

/assets/:id -> assets/1991

1 个答案:

答案 0 :(得分:2)

您可能希望解析变量而不是使用数据:

when('/assets/:id', {
      templateUrl: 'app/components/assets/views/view.tpl.html',
      controller: 'AssetViewCtrl',
      resolve: {
          data: ['$route', function($route){
                var obj = {};
                obj.pageTitle = 'assets/' + $route.current.params.id;
                return obj;
           }]
      }
}

然后在控制器中,注入“数据”(没有引号)。数据将是一个对象,其属性为'pageTitle',其中'assets /'+:id。

请注意,当你解决时,你必须使用$ route.current.params,因为$ routeParams仍然具有前面的路由:https://docs.angularjs.org/api/ngRoute/provider/ $ routeProvider

在控制器中,您可以执行以下操作:

$scope.title = data.pageTitle 

在视图中,您可以执行类似

的操作
<html app="myApp">
    <title ng-bind="title"></title>
</html>