gsklee / ngStorage

localStorage and sessionStorage done right for AngularJS.
MIT License
2.34k stars 461 forks source link

Can localstorage value persist across opened tabs/windows ? #269

Open Vikram0811 opened 6 years ago

Vikram0811 commented 6 years ago

Hi,

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

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

$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.

Could you please explain how do we use your 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.

sblaauw commented 6 years ago

@Vikram0811 This work between two tabs/windows. I created a quick test using a checkbox.

Controller:

$scope.$storage = $localStorage;

View:

<input type="checkbox" ng-model="$storage.test">
<pre>
    test: {{$storage.test}}
<pre>