【发布时间】:2015-08-27 20:25:59
【问题描述】:
我需要覆盖两个按钮的后退按钮功能:
- 导航栏左上角的后退图标
- 硬件后退按钮(例如在 android 中)
但仅针对一种特定视图,而不是全局视图。我该怎么做?
【问题讨论】:
-
在主视图时导航栏上的后退按钮不应该存在。所以我不需要覆盖导航栏的返回功能。
标签: ionic-framework ionic
我需要覆盖两个按钮的后退按钮功能:
但仅针对一种特定视图,而不是全局视图。我该怎么做?
【问题讨论】:
标签: ionic-framework ionic
可以在控制器内覆盖两个按钮的后退按钮功能。这是代码:
// run this function when either hard or soft back button is pressed
var doCustomBack = function() {
console.log("custom BACK");
};
// 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();
});
确保将$rootScope 注入控制器。
有关更多详细信息和正确解释,请参阅我在相关问题中的完整答案:
【讨论】:
这段代码是针对android按钮的,而导航栏上的按钮更简单一些:
Android 按钮:
$ionicPlatform.registerBackButtonAction(function (event) {
if($state.current.name=="home"){
alert("button back");
}
}, 100);
离子按钮:
您可以编辑您的主题并查看您是如何定义您的菜单和视图的?
【讨论】: