Aktualnie używam dyrektywy znalezionej w tym pytaniu, aby zmienić tytuły stron.Ustaw tytuł strony za pomocą Angular i UI-Router na podstawie danych w kontrolerze
Set Page title using UI-Router
Następnie, w moim pliku app.js, ja dołączyć PageTitle danych, tak jak poniżej:
.state('home', {
url: '/home'
templateUrl: 'home.html'
controller: 'homeController'
data: {
pageTitle: 'Home'
}
})
jednak powiedzieć, na przykład, jeśli HomeController miał $scope.todaysDate
zmienną, która została pobrana z usługi. Czy istnieje sposób, aby uzyskać dostęp do tej zmiennej w moim routerze, więc mogę zmienić dane i PageTitle do czegoś podobnego:
data: {
pageTitle: 'Home ' + $scope.todaysDate
}
jestem w stanie przejść do sterownika i używając $rootScope.pageTitle = 'some value'
widzę zmienia zmienną 'some value'
kiedy patrzę w narzędzie konsoli Batarang, ale rzeczywisty tytuł strony się nie zmienia.
Dziękuję za wzmiankę o rozwiązaniu. Wydaje się, że to właściwe podejście. Nie mam jeszcze działa. Myślę, że robię coś nie tak z kodem w mojej fabryce. (Powiedziałem, że wcześniej była to usługa, ale tak naprawdę jest to fabryka). – twinb
@twinb, co masz, to usługa. Istnieje więcej niż jeden sposób rejestracji usługi w module. Używasz metody fabrycznej (najczęściej). Zajrzyj tutaj, aby poznać szczegóły: https://docs.angularjs.org/guide/services – Nick
@twinb czy masz szczęście? Z przyjemnością przedstawiłbym wam przykład, gdyby to pomogło. Jest to dość powszechny przypadek użycia i myślę, że możesz po prostu zmagać się z małą krzywą uczenia się. – Nick