2015-08-31 20 views
6

Mam prostą aplikację zbudowaną z jońca/Cordova. Na każdej stronie chcę utworzyć prosty przycisk bloku "Wstecz" - użytkownik może go nacisnąć, aby przejść do poprzedniej strony w aplikacji.Przycisk z IonicHistory.goBack()

Myślę o tym, używając $ ionicHistory. Jednak metoda $ ionicHistory.goBack() nie działa.

Obecnie używam zwykłego window.history.back() zamiast tego, który działa, ale nie rozumiem, dlaczego metoda jonowa nie działa tak, jak powinna.

Oto widok z kodem:

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

A oto Kontroler:

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 
    } 
}); 

ta powinna być dość prosta. Czego mógłbym zabraknąć?

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

+2

można zrobić plunker '$ ionicHistory.goBack(); 'powinno działać. –

+0

Oto ona - http://plnkr.co/yJqdfs – user1183352

+0

spróbuj owinąć to przy pomocy polecenia try-catch i podaj informacje o błędzie. –

Odpowiedz

0

Proszę użyć tego one.this pracę dla mnie. window.history.back();

2

$ ionicHistory.goBack(); działa tylko wtedy, gdy masz routing i przechodzisz do innego ekranu za pomocą $ state.go ("testPage").

W plunker masz

Przejdź do strony testowej

który jest ogólnie przekierowania przeglądarki, która IonicHistory nie może pomóc.

Historia jonowa będzie działać w oparciu o stos stanów, które ma.

Ponieważ po przekierowaniu za pomocą href = "test.html", nie będzie żadnego stanu przekazanego do historii jonowej, więc IonicHistory.goBack() nie może znaleźć żadnego stanu wstecznego.