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

Reset $rootscope value used to hide back button

我正在使用 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 值,这看起来不像可行的解决方案。

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

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

你可以做的是在这个按钮的 ng-click 上将其设置为 true