У меня есть главный контроллер для моего приложения, который отвечает только за показ и скрытие заголовка сайта прямо сейчас. Однако он снова не отображается, когда я перехожу на домашнюю страницу (через домашнюю ссылку или кнопку возврата). Я отлаживал и проверял, что переменная области имеет значение true, но представление не отражает этого.
Вот соответствующий код:
(index.html)
...
<body ng-app="mainApp" ng-controller="MainController">
<div class="container">
<div class="top-header" ng-show='showHeader'>
...
(MainController.js)
app.controller('MainController', function($scope, $location) {
init();
$scope.click = function() {
init();
}
function init() {
$scope.showHeader = false;
if ($location.path() === "/")
$scope.showHeader = true;
}
$scope.$on('$routeChangeSuccess', function(next, current) {
init();
});
});
Я уверен, что это что-то тривиальное я пропускаю поскольку я новичок в AngularJS, но любая помощь будет высоко оценена.
В чем ваша функция '$ scope.click'? Он устанавливает значение '$ scope.showHeader' в false, что может способствовать вашей проблеме. – jperezov
Вы пробовали 'ng-if' вместо' ng-show'? –
Правильно ли работает подпись обратного вызова '$ routeChangeSuccess'? [Здесь] (http://stackoverflow.com/questions/24939006/angularjs-routechangesuccess-callback-arguments) говорится, что сначала должен появиться аргумент 'event'. – Aldo