使用 ngStorage(angularjs) 作为语言选项

Usage of ngStorage(angularjs) for language option

我有这个HTML

<button class="btn btn-info" ng-click="setLanguage('en')">English</button>
<button class="btn btn-info" ng-click="setLanguage('de')">Danish</button>
<p>{{name[language]}}</p>

和javascript

$scope.language='en';  //initial default value
$scope.setLanguage = function(language) {
    $scope.language = language;    
   }

我正在将语言绑定到按钮 2 languages.based 在所选语言上,将显示内容。如何将 ende 存储到本地存储。如果我也刷新或更改页面,设置的语言应该相同。怎么做。谁能帮我 这里是 plunker http://plnkr.co/edit/zHMvBWCKevKgGeBerhhE?p=preview

ng-storage 非常简单。

ngStorage 注入到您的主模块中,并将 $localStorage 注入到您的控制器中。

$scope.setLanguage = function(language) {
    $scope.language = language;    

    $localStorage.language = language;

   }

如果您需要在刷新期间保留数据,请考虑使用 ng-cookies

ngCookies 注入您的主模块。同时将 $cookies 插入您的控制器。

然后您可以使用 $cookies.put$cookies.get 来存储和检索数据。

$scope.setLanguage = function(language) {
    $scope.language = language;    

    $cookies.put('language', language);

   }

另请注意,您应该使用 cookie expiry date 设置 TTL。

你可以使用:

window.localStorage['storageVariableName'] = language;

如果您想保存为 json 格式,请使用

window.localStorage['storageVariableName'] = angular.tojson(language);

并访问数据

$scope.language = window.localStorage['storageVariableName'];
// Getter
if ($window.localStorage.language) {
    $scope.language = $window.localStorage.language;
} else {
    $scope.language = 'en';
}


// Setter
$scope.setLanguage = function(language) {
    $scope.language = language;
    $window.localStorage.language = language;
}

要检查您的资源变量,如 cookie、本地存储等。在 chrome 开发人员工具(使用 F12 访问)下转到 Resources 选项卡。