我正在构建一个离子包,有多个视图。我使用路由提供程序在不同的视图之间导航。
app.js
.config(function($routeProvider,$locationProvider){
$routeProvider
.when('/search',
{
controller : 'MyController',
templateUrl : 'partials/search.html'
})
.when('/not-found/:className',
{
controller : 'MyController',
templateUrl : 'partials/not-found.html'
})我的index.html
<body ng-app="MyApp">
<ng-view></ng-view>
</body>
</html>问题是我手机上的后退按钮不起作用,也就是说,它不会记住历史记录。例如,如果我从search.html转到not-fin.html,当我按下手机上的后退按钮时,我希望它会返回到search.html,而不是关闭我的应用程序。我看过和离子论坛和建议的方法,使后退按钮工作是使用ion-nav-view。如果我用ion-nav-view替换ng-view,搜索/未找到的页面将不会呈现,我甚至尝试在搜索/未找到的html页面上添加ion-view。
1)你能建议一下让我的后退按钮正常工作的方法吗?
发布于 2014-12-25 13:15:44
为了实现这一点,您实际上需要捕获硬件后退按钮按下的事件并相应地执行导航,或者您可以使用ion-nav-back-button..
$ionicPlatform.registerBackButtonAction(function () { if (condition) { navigator.app.exitApp();} else { //处理回退操作!} },100);
更多详情请访问:here
使用ion-nav-back按钮的
Back
有关这方面的更多详细信息,请访问here
发布于 2016-05-07 15:42:23
registerBackButtonAction已经作为ion-nav-back-button的一部分作为ion-nav-back-button定义中的ng-click属性的一部分进行了处理:buttonEle.setAttribute('ng-click', '$ionicGoBack()'),因为$ionicGoBack执行$ionicHistory.goBack(),而后者又处理硬件的后退按钮。使用状态配置的简单更改应该可以很好地工作,如下所示:
angular
.module('app', ['ionic'])
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('search', {
url: '/search',
controller : 'MyController',
templateUrl : 'partials/search.html'
})
.state('not-found', {
url: `/not-found/:className',
controller : 'MyController',
templateUrl : 'partials/not-found.html'
});
$urlRouterProvider.otherwise('/search');
});HTML:
<body ng-app="app">
<ion-nav-bar>
<ion-nav-back-button></ion-nav-back-button>
</ion-nav-bar>
<ion-nav-view></ion-nav-view>
</body>
</html>https://stackoverflow.com/questions/27632579
复制相似问题