Разобрать $ routeParams в объекте config

0

Я пытаюсь динамически установить заголовок для каждой страницы моего углового приложения. Я устанавливаю заголовок страницы в конфигурации $ 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.

Теги:

1 ответ

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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню