AngularJS - Persist value across opened tabs/windows using ngStorage

331 views Asked by At

We ran into an issue when language is changed from one tab, it is not being reflected in another already opened tab. We are using below code to set language in cookie.

if (angular.equals(addcookie, "Yes")) {
$cookieStore.put('lang', langKey);
}

We tried below code to set language in localstorage

$localStorage.language = langKey; //EN/FR
$translate.use(langKey); //translate language

The language is set, but if user changes language from one tab, it is not reflecting it already opened tab.

Further we tried like below, though not recommended

$scope.$storage = $localStorage.$default({
           language : langKey
       });

$scope.$watch(function() {
     return angular.toJson($scope.$storage);
       }, function() {
          console.log('The language is *** '+$scope.$storage.language);
   });

But the above also does not seem to be working.

How do we use ngStorage extension in order to reflect the language change across all the opened tabs/windows ? Also does it work with open windows too apart from open tabs ?

We want a user to have multiple browser tabs/windows open of the same website and dynamically change the content on both tabs (Which are the same view) based on the localstorage.

Source - https://github.com/gsklee/ngStorage

0

There are 0 answers