从angular-translate FileStorage访问存储的语言环境

时间:2016-07-13 19:41:03

标签: javascript angularjs angular-translate

我在LocalStorage中使用angular-translate,效果非常好。区域设置被缓存或存储在本地磁盘上。当浏览器关闭并重新启动时,所选的区域设置将保持不变。

我的问题是如何访问我的某个控制器中磁盘上的缓存存储的区域设置?为了更好地解释这里工作的工作流程:

1. Launch browser to localhost and can see the site with previously chosen locale
2. Attempt to access the current locale from either the
    2.1 $translate.proposedLanguage()
    2.2 tmhDynamicLocale
3. Both are undefined -- even though the correct language is shown
4. Select language choice once more
5. current locale from both the above is now correct 

以下是模块和区域设置服务的JSFiddle。不是可运行的代码。只是我正在使用的代码的一个例子

我正在尝试访问currentLocale未定义,直到用户进行选择(再次)。我知道它存储在某处,因为浏览器退出后原始选择会保留。

1 个答案:

答案 0 :(得分:0)

在兔子整个API文档和angular-translate- *源文件中大约2个小时后,我发现我可以将$translateLocalStorage传递给我的控制器,然后调用$translateLocalStorage.get(),它将返回缓存的localId

该方法从`$ window.localStorage.getItem中提取localId。那段代码是

get: function (name) {
    if(!langKey) {
      langKey = $window.localStorage.getItem(name);
    }

    return langKey;
  }

所以你需要做的就是:

angular.module('myModule')
  .controller('QueryController', function($scope, es, $translateLocalStorage) {
     $scope.show_results = function(results) {
        var currentLocale = $translateLocalStorgae.get();
 }
});