2016-10-19 61 views
0

我正在使用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; 

但是當我回到上一頁時,後退按鈕在那裏,這不應該發生。只有在我聲明的值爲false的特定頁面上,後退按鈕纔會顯示。

如何糾正這個問題?

我的理解是app.js已經加載,所以當我回來$ rootScope值將保持爲false。如果我的理解是正確的,如何糾正它?

在app.js文件配置功能是我已經宣佈的不同狀態,如:

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

在這一點,如果我定義控制器和設定值設置爲true。然後後退按鈕將不可見。但是,我必須在創建的每個狀態中定義$ rootcope值,這看起來不像可行的解決方案。

+0

你用什麼東西?瀏覽器一個還是? –

回答

2

您的$rootScope.hideNavBackBtn = true;僅在您的Angular模塊初始化時執行一次。

僅在某些控制器中更改值($rootScope.hideNavBackBtn = false;)以將其設置爲false。您再也不會將它設置爲true

您可以做的是將其設置爲true,該按鈕的ng-click

+0

我認爲ng-init比ng-click更好。 – tomek550

+0

感謝它的工作寶石。爲什麼我想到它:( – Veer