2015-11-01 7 views
1

Как я трачу название параметра сообщения, чтобы отобразить название браузера?Угловой ui маршрутизатор, название динамическое

Я использую параметр pageTitle на моем маршруте, но если поставить прямо: slug как значение, не работает.

.state('posts',{ 
    url   : '/blog/:slug', 
    templateUrl : 'content/templates/single.html', 
    controller : 'SinglePostController', 
    data: { 
     pageTitle: 'title' 
    }, 
    access: { 
     requiredLogin: false 
    } 
}) 
+0

Вы хотите поместить 'slug' в свой заголовок браузера? но тогда что будет титулом для других государств? –

ответ

1

Установка data : {} статическая.

см похож:

Если вы хотите некоторых динамических использовании функции resolve : {}

Некоторых ссылки на примеры и Q & А вокруг решимости

ПРОДЛИТЕ: простой (действительно наивный, но работает) пример того, как использовать resolve и $rootScope управлять название браузера (check it here):

$stateProvider 
    .state('home', { 
     url: "/home", 
     templateUrl: 'tpl.html', 
     resolve: { 
     'title': ['$rootScope', function($rootScope){ 
      $rootScope.title = "Other title"; 
     }], 
     } 
    }) 
    .state('parent', { 
     url: "/parent", 
     templateUrl: 'tpl.html', 
     resolve: { 
     'title': ['$rootScope', function($rootScope){ 
      $rootScope.title = "Title from Parent"; 
     }], 
     } 
    }) 
    .state('parent.child', { 
     url: "/child", 
     templateUrl: 'tpl.html', 
     controller: 'ChildCtrl', 
     resolve: { 
     'titleFromChild': ['$rootScope', function($rootScope){ 
      $rootScope.title = "Title from Child"; 
     }], 
     } 
    }) 

И это может быть HTML

<!DOCTYPE html> 
<html ng-app="MyApp" ng-strict-di> 

    <head> 
    <title>{{title}}</title> 

Пробег: here

Задача здесь - что делать на навигацию от ребенка к родителю, но это может быть сделано путем перемещения, что установка в контроллер и работать с $scope.$on('detsroy' ...

Вот adjusted plunker

.state('parent.child', { 
     url: "/child", 
     templateUrl: 'tpl.html', 
     controller: 'ChildCtrl', 
     // no resolve, just controller fills the target 
    }) 

.controller('ChildCtrl', ['$rootScope', '$scope', function ($rootScope, $scope) { 
    var title = $rootScope.title; 
    $rootScope.title = "Title from Child"; 
    $scope.$on('$destroy', function(){$rootScope.title = title}); 
}]) 
+0

Хорошо, теперь сделайте шаг, чтобы решить параметр slug? Непосредственно по StateParams? и установить с помощью rootScope? –

+0

@MarcoRiesco, если я понимаю вашу проблему, это должно быть лучшим для вас: http://stackoverflow.com/q/30268800/1679310 –

+1

моя проблема в заголовке браузера –

Смежные вопросы