У меня есть веб-страница с очень простой структурой, представляющая собой левую навигацию, панель заголовка и область содержимого. Если я должен описать его с кодом, он выглядит как этотРегулятор контроллера AngularJS и визуализировать представление еще раз?
<body>
<aside ng-controller="SideNavCtrl">Left Nav data</aside>
<header ng-controller="HeaderCtrl">Page Title</header>
<section>
<article ng-view>Page Content</article>
</section>
Я использую ngRoute и изменить мои маршруты влево и вправо. Я хочу обновить «Название страницы» от контроллера, который принял маршрут. Я пробовал сотни разных способов, но изменение переменной никогда не приводит к обновлению данных заголовков. Вот моя последняя переменная доля между контроллерами (не работает)
app.controller("HeaderCtrl", ["$scope", "HeaderData", function($scope, HeaderData) {
$scope.title = HeaderData.title();
}]);
app.factory("HeaderData", function() {
var title = 'Default';
return {
title: function() { return title; },
setTitle: function(newTitle) { title = newTitle; }
}
});
Позже в разгромленной контроллера я иду, как этот
app.controller("PreviewBuildCtrl", ["$scope", "$routeParams", "$location", "BuildsAPIService", "HeaderData", function($scope, $routeParams, $location, BuildsAPIService, HeaderData) {
$scope.build = BuildsAPIService.getBuildById($routeParams.buildId);
HeaderData.setTitle("Previewing Build");
console.log(HeaderData);
if (!$scope.build) {
$location.url('/builds/' + $routeParams.profession);
}
}]);
Проблема заключается в том, что использование HeaderData.setTitle() Безразлично» t обновить содержимое заголовка. Я действительно не хочу писать код jQuery для этой задачи. Должен быть более умный, более угловатый способ сделать это.
Все, что я хочу сделать, это изменить название заголовка на «странице B» при переходе на страницу б со страницей а и я считаю добавлением хлебных крошек плагин излишества для выполнения этой задачи под руку :(
Я получаю «неопределенный» таким образом, независимо от того, что PreviewBuildCtrl только что использовал setTitle – Sk1ppeR
Whoop, исправил его. Теперь я передаю весь HeaderData в область действия и просто использую эти методы в представлении. Обновления соответственно сейчас, спасибо :) – Sk1ppeR