Я пытаюсь динамически установить заголовок для каждой страницы моего углового приложения. Я устанавливаю заголовок страницы в конфигурации $ 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'
}
});
}]);
Проблема в том, что заголовок страницы теперь является "Assets: id" verbatim. Возможно ли проанализировать значение "id", аналогичное первому параметру when
?
т.е. /assets/:id → assets/1991
.
Вместо использования данных вы можете захотеть разрешить переменные:
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>