我正在使用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值,这看起来不像是可行的解决方案。
答案 0 :(得分:2)
当你的Angular模块初始化时,你的$rootScope.hideNavBackBtn = true;
只执行一次。
仅在某个控制器中更改值($rootScope.hideNavBackBtn = false;
)以将其设置为false
。您再也没有将其设置为true
。
您可以做的是在此按钮的true
上将其设置为ng-click
。