首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将选定的语言保存在本地存储中,或者将cookie保存在角js中。

如何将选定的语言保存在本地存储中,或者将cookie保存在角js中。
EN

Stack Overflow用户
提问于 2016-04-10 13:46:46
回答 1查看 2.6K关注 0票数 2

我是新来的天使。我需要保存从html的select选项卡中选择的语言,在本地存储或cookie中,当用户导航到另一个页面时,新页面打开,加载并使用上一页中选择的语言。和现在一样,如果更改页面或刷新当前页面,所选语言将消失,用户必须选择它。我使用bower组件作为角度js,并从静态文件加载转换。

  1. 以下是我的Html代码:

代码语言:javascript
运行
复制
<div >
    <section class="caret">
      <h4>Select language for translation:</h4>
      <select class="caret" ng-change="translate()" ng-model="selectedLanguage">
        <option class="caret" value="en">English</option>
        <option class="caret" value="no">Norsk</option>
      </select>
    </section>
<div>

  1. 我的应用程序

代码语言:javascript
运行
复制
var app = angular.module('myApp', ['ngResource']);

  1. 我的控制器

代码语言:javascript
运行
复制
app.controller('myController',['$scope', 'translationService', 

function ($scope, translationService){  

  //Run translation if selected language changes
  $scope.translate = function(){
       translationService.getTranslation($scope, $scope.selectedLanguage);
   };
   
   //Init
   $scope.selectedLanguage = 'en';
   $scope.translate();
   
}]);

  1. 我的翻译服务

代码语言:javascript
运行
复制
app.service('translationService', function($resource) {  

        this.getTranslation = function($scope, language) {
            var languageFilePath = 'translation_' + language + '.json';
            console.log(languageFilePath);
            $resource(languageFilePath).get(function (data) {
                $scope.translation = data;
            });
			
			
        };
});

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-10 14:18:50

您可以简单地使用localStorage。只要您只需要字符串键值对,就可以像下面这样使用它。

一旦需要持久化对象等,就可以使用JSON.stringifyJSON.parse对它们进行序列化。

下面是您更新的代码,请参阅注释: app.controller('myController',['$scope',‘翻译服务’),

代码语言:javascript
运行
复制
function ($scope, translationService){  

  $scope.translate = function(){
       translationService.getTranslation($scope, $scope.selectedLanguage);

       //Save changes to localStorage
       localStorage.setItem('selectedLanguage', $scope.selectedLanguage);
   };

   //Init
     //Set initial value or default
     $scope.selectedLanguage = localStorage.getItem('selectedLanguage') || 'en';
   $scope.translate();

}]);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36530572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档