我正在尝试为我的角度应用的每个页面动态设置标题。我在$ 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
。
答案 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>