我是angularJS的新手,并在我切换多种语言的应用程序上工作。 在我更改语言并刷新页面后,它将切换到默认语言(即英语)。 请建议我如何保留$ rootScope的值,以便在刷新页面后不会改变
我的CTRL ---------
myApp.controller(' recordCtrl',功能($ scope,$ translate,$ http,altaMdlSvcs,$ rootScope,$ cookieStore,altaPageActionSvcs,$ location,$ rootScope,$ stateParams){ $ scope.globalLang ='';
$http.get("metadata/record.json").then(function(response) {
$scope.recordArray = response.data.records;
});
$http.get("metadata/language.json").then(function(response) {
$rootScope.languages = response.data;
});
var locale = localStorage.getItem("token");
//$translate.use(locale);
$scope.changeLanguage = function (langObj) {
$scope.globalLang = langObj.lang.langCode;
localStorage.setItem("token", $scope.globalLang);
console.log("lower"+$scope.globalLang+"................");
$translate.use(langObj.lang.langCode);
};
$scope.openModel = function(langObj) {
var requestMap = {
"templateHtml" : '/I18nDemo/html/model.html',
"controllerName" : 'modelCtrl',
"doAction" : $scope.changeLanguage,
"lang" : langObj,
"parent" : $scope
};
altaMdlSvcs.customOpen(requestMap);
};
});
答案 0 :(得分:1)
通过刷新页面(f5),您将从内存中擦除$ rootscope。您的应用程序重新启动。
如上所述,您应该使用某种存储方式。这样,您可以保存用户首选项,并在他回到您的应用程序时再次使用它。