我是新来的天使。我需要保存从html的select选项卡中选择的语言,在本地存储或cookie中,当用户导航到另一个页面时,新页面打开,加载并使用上一页中选择的语言。和现在一样,如果更改页面或刷新当前页面,所选语言将消失,用户必须选择它。我使用bower组件作为角度js,并从静态文件加载转换。
<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>
var app = angular.module('myApp', ['ngResource']);
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();
}]);
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;
});
};
});
谢谢。
发布于 2016-04-10 14:18:50
您可以简单地使用localStorage。只要您只需要字符串键值对,就可以像下面这样使用它。
一旦需要持久化对象等,就可以使用JSON.stringify和JSON.parse对它们进行序列化。
下面是您更新的代码,请参阅注释: app.controller('myController',['$scope',‘翻译服务’),
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();
}]);https://stackoverflow.com/questions/36530572
复制相似问题