重置用于隐藏后退按钮的 $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
。
我正在使用 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
。