【发布时间】:2018-01-30 17:48:35
【问题描述】:
我们的任务是翻译语言,而这种变化应该反映在同一网站的其他打开的选项卡/窗口中。集成ngStorage插件,通过localstorage访问持久化数据
$scope.$storage = $localStorage;
$localStorage.language = langKey; //EN/FR
$scope.$watch(function () {
return angular.toJson($localStorage);
}, function () {
$scope.language = $localStorage.language;
$translate.use($localStorage.language); //translate language
});
上面的 sn-p 可以工作,语言翻译可以在标签和窗口中看到。但是当用户点击应用按钮时尝试保存语言,使用下面的代码似乎不起作用
$scope.close = function (response, selectedlanguage) {
//user clicks on apply button and window to change language is closed
if (angular.equals(response, 'Yes')) {
$window.opener.angular.element('#langchange').scope().changeLanguage(selectedlanguage);
$window.opener.angular.element(".logo-lg").trigger("click");
$localStorage.language = selectedlanguage;
$scope.language = $localStorage.language;
$window.close('cancel');
}
};
虽然使用$cookieStore.put('lang', selectedlanguage); 和$cookieStore.get('lang');,但我可以将语言保存在cookie 中,并在下次重新加载时获取它。
如何使用 ngStorage 插件 localstorage 实现相同的功能?
【问题讨论】:
-
也许它与这个答案中所说的有关? (必须进行摘要循环才能实际存储您的值):stackoverflow.com/a/41050184/7393478
标签: javascript angularjs local-storage