【发布时间】:2017-04-01 13:09:50
【问题描述】:
当前,特定页面上的后退按钮覆盖正在处理我正在应用的特定 Tab-SubTab (A) - 在 SubTabA 上,后退按钮将我带回 TabA,但 $scope.$on('$破坏......)似乎没有工作。因为如果从 Tab-SubTab(A) 并且我直接导航到另一个 Tab-SubTab (C) 页面 - Tab-SubTab (C) 上的后退按钮将我直接带回 TabA 而不是返回 TabC。
此外,如果我回到 TabC - 它会直接带我进入 Tab-SubTabC(因为那是它上次停止的地方),我永远无法回到 TabC。
下面是我所在的特定页面/选项卡的控制器:
$scope.$on('$ionicView.beforeEnter', function(){
// some none related stuff here.
}) ;
// custom back button to send user to master Rides tab no matter how many subviews they navigate to
//
//
var doCustomBack = function() {
$state.transitionTo('tab.rides');
};
// override soft back
// framework calls $rootScope.$ionicGoBack when soft back button is pressed
var oldSoftBack = $rootScope.$ionicGoBack;
$rootScope.$ionicGoBack = function() {
doCustomBack();
};
var deregisterSoftBack = function() {
$rootScope.$ionicGoBack = oldSoftBack;
};
// override hard back
// registerBackButtonAction() returns a function which can be used to deregister it
var deregisterHardBack = $ionicPlatform.registerBackButtonAction(
doCustomBack, 101
);
// cancel custom back behaviour
$scope.$on('$destroy', function() {
deregisterHardBack();
deregisterSoftBack();
});
我认为 $scope.$on('$destroy'...) 可以防止这种情况发生,但显然不是。
导航视觉:
Tab A (controller: tabA)
-> Sub Tab A1 (controller: subTabA) <- above backbutton overrides here
Tab B (controller: tabB)
-> Sub Tab B1 (controller: subTabB)
Tab C (controller: tabC)
-> Sub Tab C1 (controller: subTabC)
Tab D (controller: tabD)
我的应用顶部是
HOME TabA TabB TabC TabD
If I got to TabA -> SubTabA, click back button, takes me back to TabA
If I got to TabA -> SubTabA, then go directly to TabC (from top of app) then to -> SubTabC,
the back button on SubTabC takes me directly back to TabA content.
【问题讨论】:
标签: angularjs ionic-framework tabs back-button