我有一个使用 Ionic/Cordova 构建的简单应用程序。在每个页面中,我想创建一个简单的“返回” block 按钮 - 用户可以按下它以转到应用程序中的上一页。
我正在考虑使用 $ionicHistory 来执行此操作。但是,$ionicHistory.goBack() 方法不起作用。
我目前使用的是常用的 window.history.back(),它有效,但我不明白为什么 ionic 方法不能正常工作。
这是代码的 View :
<button class="button button-block button-assertive" ng-click="goBackHandler()">
Go Back
</button>
这是 Controller :
angular.module('starter.controllers', ['ionic'])
.controller('AppCtrl', function($scope, $ionicHistory)
{
$scope.goBackHandler = function()
{
$ionicHistory.goBack(); //This doesn't work
//window.history.back(); //This works
//alert('code to go back called. Did it work?'); //For testing
}
});
这应该非常简单。我可能缺少什么?
编辑:Plunker here - http://plnkr.co/yJqdfs
最佳答案
$ionicHistory.goBack()
只有当你有路由并且当你使用 $state.go('testPage')
导航到另一个屏幕时才有效.
在你的plunker中
<a href="test.html">Go to Test Page</a>
这是一般的浏览器重定向,IonicHistory 帮不了您。
Ionic History 将根据它拥有的状态堆栈工作。
因为当您使用 href="test.html"
重定向时, 不会有状态被推送到 Ionic History,所以 $ionicHistory.goBack()
找不到任何返回状态。
关于javascript - 带有 IonicHistory.goBack() 的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32315335/