当从一个选项卡更改语言时,我们遇到了一个问题,它没有反映在另一个已打开的选项卡中。我们正在使用以下代码在 cookie 中设置语言。
if (angular.equals(addcookie, "Yes")) {
$cookieStore.put('lang', langKey);
}
我们尝试使用以下代码在本地存储中设置语言
$localStorage.language = langKey; //EN/FR
$translate.use(langKey); //translate language
语言已设置,但如果用户从一个选项卡更改语言,则不会反映它已打开的选项卡。
我们进一步尝试如下,但不推荐
$scope.$storage = $localStorage.$default({
language : langKey
});
$scope.$watch(function() {
return angular.toJson($scope.$storage);
}, function() {
console.log('The language is *** '+$scope.$storage.language);
});
但是上面的方法似乎也不起作用。
我们如何使用 ngStorage 扩展来反映所有打开的选项卡/窗口的语言变化?除了打开的标签之外,它是否也适用于打开的窗口?
我们希望用户打开同一网站的多个浏览器选项卡/窗口,并根据本地存储动态更改两个选项卡上的内容(它们是相同的视图)。