2016-10-19 2 views
0

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

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', 
    }) 

В этом случае я определить контроллер и установить значение истина. Тогда кнопка «Назад» не будет видна. Но тогда я должен определить значение $ rootcope в каждом состоянии, которое я создаю, что не похоже на жизнеспособное решение.

+0

Какую пользу вы используете? Браузер один или? –

ответ

2

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

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

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

+0

Я думаю, что ng-init будет лучше, чем ng-click. – tomek550

+0

Спасибо, что он работает с драгоценным камнем. Почему я думаю об этом :( – Veer

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