Сброс значения $rootscope, используемого для скрытия кнопки возврата

Я использую ng-hide, чтобы скрыть кнопку "Назад" и показать ее на нужных страницах. В app.js у меня есть следующий код, где я объявляю начальное значение true:

var app = angular.module('myApp', ['ui.bootstrap', 'ui.router', 'ui.mask', 'ngSanitize', 'ngAnimate', 'input-digits', 'input-phone','dailyTips']).run(function ($rootScope) {
    $rootScope.hideNavBackBtn = true;
});

И после этого в каждом контроллере, где я хочу показать кнопку возврата, я устанавливаю значение как:

$rootScope.hideNavBackBtn = false;

Но когда я возвращаюсь на предыдущую страницу, кнопка возврата есть, этого не должно произойти. Кнопка "Назад" должна отображаться только для тех страниц, где я объявил значение "ложь".

Как исправить эту проблему?

Насколько я понимаю, app.js уже загружен, поэтому, когда я вернусь, значение $ rootScope останется равным false. Если мое понимание верно, как исправить это?

В функции конфигурации файла app.js я объявил другое состояние, например:

.state('home.overview', {
        url: '/overview',
        templateUrl: 'modules/Overview.html',
    })

В этом случае я определяю контроллер и устанавливаю значение true. Тогда кнопка "Назад" не будет видна. Но затем я должен определить значение $ rootscope в каждом создаваемом мной состоянии, которое не выглядит как жизнеспособное решение.

1 ответ

Решение

Ваш $rootScope.hideNavBackBtn = true; выполняется только один раз, когда ваш угловой модуль инициализируется.

Вы меняете значение ($rootScope.hideNavBackBtn = false;) только в каком-то контроллере, чтобы установить его false, Вы никогда не устанавливаете это true снова.

что вы можете сделать, это установить его true на ng-click этой кнопки.

Другие вопросы по тегам