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;

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

如何纠正这个问题?

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

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

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

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

4

1 回答 1

2

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

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

您可以做的是将其设置true为该ng-click按钮的 。

于 2016-10-19T09:54:37.917 回答