javascript - 带有 IonicHistory.goBack() 的按钮

标签 javascript cordova ionic-framework back

我有一个使用 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/

相关文章:

javascript - 当复选框值更改时,$watch 不会在 Angular 指令中被命中

javascript - 如何根据JavaScript中字符的位置提取子字符串?

获取 IAP 产品响应后的 Objective-C 错误

jquery - Phonegap (Cordova) 仅使用数据位置 ="fixed"页眉/页脚滚动 ios 滚动问题

cordova - 如何通过文件传输在ionic和cordova中下载文件

javascript - 到前 15 分钟 javascript 的时间

javascript - 单个标记上的 setPosition 触发所有标记的 setContent

javascript - 数据更改时 ng 类不刷新

javascript - 后台附件 : fixed not working in jquery mobile phonegap

android - Android 上的 Ionic 应用程序文件夹在哪里?