【问题标题】:Can't keep the $rootScope value after refresh刷新后无法保留 $rootScope 值
【发布时间】:2016-07-14 13:20:25
【问题描述】:

我是 angularJS 的新手,并且正在处理我切换多种语言的应用程序。 在我更改语言并刷新页面后,它将切换到默认语言(即)英语。 请建议我如何保持 $rootScope 的值,以便刷新页面后它不会改变

我的CTRL---------

myApp.controller('recordCtrl',function($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);
};

});

【问题讨论】:

  • 使用浏览器cookie或会话保存信息

标签: angularjs


【解决方案1】:

通过刷新页面 (f5),您将从内存中清除 $rootscope。您的应用程序将重新启动。

如上所述,您可能应该使用某种存储。这样,您可以保存用户偏好并在他返回您的应用程序时再次使用它。

看看:https://www.npmjs.com/package/ng-storage

【讨论】:

    猜你喜欢
    • 2021-03-19
    • 2010-11-04
    • 2011-06-29
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 2010-12-20
    • 1970-01-01
    相关资源
    最近更新 更多