2015-08-31 9 views
6

Ho una semplice applicazione costruita con Ionic/Cordova. In ogni pagina voglio creare un semplice pulsante di blocco "Indietro": l'utente può premerlo per andare alla pagina precedente nell'app.Pulsante con IonicHistory.goBack()

Sto pensando di farlo usando $ ionicHistory. Tuttavia, il metodo $ ionicHistory.goBack() non funziona.

Attualmente sto usando il solito window.history.back() invece, che funziona, ma non capisco perché il metodo ionico non funzioni come dovrebbe.

Qui è la vista del codice:

<button class="button button-block button-assertive" ng-click="goBackHandler()"> 
    Go Back 
</button> 

E qui è il 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 
    } 
}); 

Questo dovrebbe essere abbastanza straight-forward. Cosa potevo mancare?

Edit: Plunker qui - http://plnkr.co/yJqdfs

+2

puoi creare un plunker. $ IonicHistory.goBack(); 'dovrebbe funzionare. –

+0

Eccolo: http://plnkr.co/yJqdfs – user1183352

+0

prova ad avvolgerlo con try-catch e fornisci informazioni sull'errore. –

risposta

0

Per favore usate questo one.This lavoro per me. window.history.back();

2

$ ionicHistory.goBack(); funziona solo quando si ha routing e quando si naviga su un'altra schermata usando $ state.go ('testPage').

Nella plunker Hai

Vai alla pagina di prova

Che è un reindirizzamento del browser generale, che IonicHistory non si può fare.

Ionic History funzionerà in base allo stack degli stati che ha.

Perché quando si reindirizza utilizzando href = "test.html", non ci sarà alcun stato inviato a Ionic History, quindi IonicHistory.goBack() non è stato in grado di trovare alcun backstate.