2

При использовании UI-маршрутизатора, как вы обрабатываете заголовки страниц определенного контента?Контентные заголовки страниц в UI-Router

я могу обрабатывать нормальные заголовки страниц просто отлично, например:

.state('login', { 
    url: '/login', 
    views: { 
     "navbar": { 
      template: normalNavbarTemplate 
     }, 
     "content": { 
      template: '<login authenticated="(bCtrl.userSession && bCtrl.userSession.isAuthenticated)"></login>' 
     } 
    }, 
    title: 'My Website (0.2) - Login' 
}) 

А потом:

$rootScope.$on('$stateChangeSuccess', function (evt, toState) { 
    $window.document.title = toState.title; 
}); 

Но что происходит, когда вы хотите, чтобы ваш заголовок должен содержать содержимое конкретного содержания, которое вы получение с использованием разрешение?

Я думаю, вы можете ввести $ window в свои компоненты и установить заголовок таким образом, но он чувствует себя грязным. Есть ли лучшие рецепты для этого, которые я, возможно, пропустил?

Благодаря

ответ

3

Вы можете изменить название свойства внутри решимостью:

resolve: { 
    content: function($http) { 
     return $http.get('some_url').then(function(result) { 

      this.self.title = result.data.title; // set the title property to whatever you like 

      return result; 
     }.bind(this)); 
    } 
} 
+0

Я не знаю, что вы могли бы сделать это, что является удивительным! – JMK

+1

Я использую его для установки разрешений на представления, и это действительно потрясающе :) –

+0

В целом, что такое сделка с * bind (this) *. Я не использую это обычно в разрешении, это важно для настройки заголовков страниц? – JMK

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