Ionic Back button-вид не показывает влияние на изменение localStorage

У меня есть простое требование, когда из нескольких страниц у меня есть одна страница настроек в Ionic app, где я позволяю пользователю переключать одни данные(скажем, язык), который поддерживается в LocalStorage в приложении(через фабрику).

Этот «язык» используется во всех представлениях(контроллерах).

У меня есть кнопка Back на виде, но когда пользователь изменяет «язык» через страницу настроек(я обновляю LocalStorage) и хочет вернуться через кнопку ionichistory back к просмотру предварительного просмотра, изменение не появляется после возврата.

«Предыдущее представление» использует LocalStorage.Язык для извлечения данных

Кнопка Назад использует следующий код:

 $scope.goBack = function() {
    window.history.back();
  }

Может ли кто-нибудь помочь здесь или любой обходной путь для этого возможен.

1 ответ

  1. Ionic кэширует представления в текущей истории навигации. Для обновления представления каждый раз, когда вы приходите к представлению , вы должны использовать $ionicViewобратные вызовы жизненного цикла, такие как .enter.beforeEnterи т.д. Код, написанный как часть этих обратных вызовов, выполняется каждый раз, даже если представление было кэшировано:

    $scope.$on('$ionicView.enter', function() {
      // Get your settings data here to reflect it on page everytime
    })
    

    Для деталей см.: http://ionicframework.com/docs/api/directive/ionView/