2015-07-31 21 views
5

Ho un pulsante Indietro quando ho colpito il ng-click='goBack()'. Riesco a vedere l'url nel browser che cambia da http://app:8888/#/main/payments a http://app:8888/#/main/products/7 che è il percorso giusto su cui voglio tornare ma il problema è che la vista non vi transita.Ionico come tornare a livello di programmazione

Devo premere il pulsante di aggiornamento per andare lì o fare un window.location.reload dopo il $ionicHistory.goBack();.

Non voglio ricaricare l'intera pagina Voglio passare quella vista a quella precedente.

questo è il mio html

 <div class="row"> 
     <div class="col col-25"> 
      <button ng-click="goBack()" class="button button-large button-block button-royal">Go Back</button> 
     </div> 
    </div> 

questo è il mio controller

.controller('paymentsController', function($scope, $localStorage, $log, $state, $window, $ionicHistory){ 

$scope.goBack = function(){ 

    $ionicHistory.goBack(); 

} 


}) 

questo è il mio app.js non so se questo sarebbe di aiuto.

// Ionic Starter App 

// angular.module is a global place for creating, registering and retrieving Angular modules 
// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html) 
// the 2nd parameter is an array of 'requires' 
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services', 'ngStorage']) 

.run(function($ionicPlatform) { 
    $ionicPlatform.ready(function() { 
     // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
     // for form inputs) 
     if(window.cordova && window.cordova.plugins.Keyboard) { 
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
     } 
     if(window.StatusBar) { 
      StatusBar.styleDefault(); 
     } 
    }); 
}) 

.config(function($stateProvider, $urlRouterProvider){ 

    //$ionicConfigProvider.views.transition('none'); 

    $urlRouterProvider.otherwise('/'); 

    $stateProvider 

     .state('login',{ 
      url: '/', 
      templateUrl: 'templates/login.html', 
      controller: 'loginController' 
     }) 

     .state('main', { 
      url: '/main', 
      templateUrl: 'templates/main.html', 
      controller: 'mainController', 
      abstract: true 
     }) 

     .state('main.categories', { 
      url: '/categories', 
      views: { 
       'categories': { 
        templateUrl: 'templates/categories.html', 
        controller: 'categoriesController' 
       } 
      } 
     }) 

     .state('main.products', { 
      url: '/products/:productId', 
      views: { 
       'products': { 
        templateUrl: 'templates/products.html', 
        controller: 'productsController' 
       } 
      } 
     }) 

     .state('main.payments', { 
      url: '/payments', 
      views: { 
       'payments': { 
        templateUrl: 'templates/payments.html', 
        controller: 'paymentsController' 
       } 
      } 
     }) 

}) 
+1

possibile duplicato di [come creare un pulsante indietro nel piè di pagina (quadro ionica)?] (Http://stackoverflow.com/domande/22739459/how-to-create-a-back-button-in-the-footer-ionico-quadro) – callmekatootie

risposta

0

Usa $ Stato per reindirizzare a vista particolare:

$state.transitionTo('main'); 

qui 'principale' è il tuo nome della vista che si è definito nel vostro urlrouterprovider.

O

È inoltre possibile utilizzare $ location

$location.path('main'); 

non dimenticare di aggiungere $ Stato o $ posizione nel parametro del controller.

2

chiamata questo dal vostro controller in cui si vuole andare indietro ..

var backCount = 1; 
$rootScope.$ionicGoBack(); 
$rootScope.$ionicGoBack = function(backCount) { 
    $ionicHistory.goBack(backCount); 
}; 
Problemi correlati