重置$ rootscope值用于隐藏后退按钮

时间:2016-10-19 09:25:21

标签: angularjs ng-hide angularjs-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;

但是当我回到上一页时,后退按钮就在那里,这不应该发生。仅对于我已声明值为false的特定页面,后退按钮应显示。

如何纠正这个问题?

我的理解是app.js已经加载了所以当我回来时,$ rootScope值将保持为false。如果我的理解是正确的,如何纠正它?

在app.js文件配置函数中,我已经声明了不同的状态,如:

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

在此,如果我定义控制器并将值设置为true。然后后退按钮将不可见。但是我必须在我创建的每个状态中定义$ rootscope值,这看起来不像是可行的解决方案。

1 个答案:

答案 0 :(得分:2)

当你的Angular模块初始化时,你的$rootScope.hideNavBackBtn = true;只执行一次。

仅在某个控制器中更改值($rootScope.hideNavBackBtn = false;)以将其设置为false。您再也没有将其设置为true

您可以做的是在此按钮的true上将其设置为ng-click