如何更改 angular 的值配方中的存储值

How to change stored value in Value recipe of angular

从angulardocumentation可以看出,一个value recipe可以用来存储一些可以注入不同模块的信息。所以我想用它来在我的 angular 应用程序中存储一些与用户相关的配置。

我现在在做什么:

默认设置一个值-

app.value('display', {
        header: true,
        switcher: true
    })

我的视图中有一个 header 和切换器,我想根据来自上述分配的 header 和切换器的值显示或隐藏它们。

这部分显示和隐藏效果很好。我想要的是,如果某些控制器将 header 的值更改为 false,则应该为该特定用户隐藏 header。所以在我的控制器中,我只是将值设置为 false。但是在页面刷新时,这些值消失了。

我不确定这里出了什么问题。我们不应该改变价值吗?如果不是,那不就是一个常数吗?如果我们不应该更新值,那么存储一些可用于整个应用程序的用户相关变量的更好方法是什么。

先做一个像

这样的工厂
(function() {
"use strict";
angular.module('dataModule',[])
.factory('datafactory',function(){
return {

};
});
})();

现在可以在应用程序的任何地方访问数据工厂,只需要将此模块注入所需的模块和所需的控制器中的工厂即可

这样使用

datafactory.myReusableVar  ="something"

稍后在其他控制器中

$scope.myLocalVar =datafactory.myReusableVar

//using session storage
var x ="value"// x can be any data type string,array, or object
sessionStorage.setItem("mySessionItem",x)
$scope.mysessionValue =sessionStorage.getItem("mySessionItem")

问题是在页面刷新时,当前上下文丢失(包括所有变量),您应该通过将数据存储在浏览器的 localStorge 中来解决您的问题。 检查这个模块 https://github.com/grevory/angular-local-storage