2015-04-03 2 views
0

Я разрабатываю это приложение Ionic/Cordova, где мне нужно перезагрузить после $ state.go. Я делаю это, как этот

$state.go('app.menu', {}, {reload: true}).then(function(){ 
       $window.location.reload(true); 
     }); 

Приведенный выше код работает прекрасно в браузере, проблема возникает, когда я загрузить его на iPhone в симуляторе. Проблема заключается в том, что он не переходит в указанное состояние, т.е. app.menu.

Но если я удалю $window.location.reload(true);, он действительно переходит в состояние.

Как вы думаете, а проблема?

Edit: Если добавить тайм-аут он работает, , но я не хочу, чтобы. Вроде так

$state.go('app.menu', {}, {reload: false}).then(function(){ 
     setTimeout(function() { 
      $window.location.reload(true); 
     }, 500); 
     }) 
+0

Вы попробовали location.reload (true); –

+0

@ ZeeshanHassanMemon Я просто попробовал, то же самое происходит. – tekesteg

+0

вы можете попытаться исправить это путем установки кэша: ложный как .state («app.menu», { кэша: ложный, URL: «you_url_here», –

ответ

1

Это сработало для меня: Source Here.

По дизайну взгляды кэшируются. Попробуйте cache: false в вашем штате.

$stateProvider.state('myState', { 
    cache: false, 
    url : '/myUrl', 
    templateUrl : 'my-template.html' 
}) 
2

Используйте безотлагательный тайм-аут. Меня устраивает.

$timeout(function() { 
    $window.location.reload(true); 
});