gpt4 book ai didi

javascript - 具有来自 sessionStorage 的值的切换按钮

转载 作者:行者123 更新时间:2023-12-03 00:14:06 25 4
gpt4 key购买 nike

我有一个小切换按钮,我将值(真或假)存储到 sessionStorage 中,并且在页面加载时,如果该值存在于 sessionStorage 中,我会获取它并根据值显示切换按钮,也根据该值我在我的 angularjs 页面上显示不同的内容。

问题是,我将一个值存储到 sessionStorage,然后我再次调用该值,但我的切换按钮和 ng-if 语句没有得到这个值。下面是我的代码。

问题是,如何以及为什么我无法将其添加到 ng-if 语句中? (在我的 fiddle 中,我使用 ng-show 因为 ng-if 在此示例中不起作用)

working fiddle

var app = angular.module("ap", []);

app.controller("con", function($scope) {
if (sessionStorage.getItem("modePreview")) {
$scope.basicMode = sessionStorage.getItem("modePreview");
} else {
$scope.basicMode = true;
}
$scope.sendModeValueToStorage = function() {
sessionStorage.setItem(
"modePreview",
($scope.basicMode = !$scope.basicMode)
);
};

});
.activeSwitch,
.inactiveSwitch {
font-size: 26px;
cursor: pointer;
}

i.activeSwitch {
color: #e4e4e471;
}

i.inactiveSwitch {
color: #e4e4e471;
}

.fontStyleUserControlPannel {
font-size: 18px;
font-weight: 600;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<body ng-app="ap" ng-controller="con">

Advanced mode <i class="fa fa-toggle-on fa-2x" ng-click="sendModeValueToStorage()" ng-class="{'fa-rotate-180' : basicMode}"></i> Basic mod

<div ng-show="!basicMode">
<h3>
Basic mode
</h3>
</div>
<div ng-show="basicMode">
<h3>
Advanced mode
</h3>
</div>
</body>

最佳答案

几个问题:

首先,在你的 fiddle 中,你使用的是 AngularJS 版本 1.1.1。 AngularJS 1.1.5 之前的版本中不存在 ng-if 。因此,您需要更新 AngularJS 版本以使用 ng-if

其次,sessionStorage 只能接受字符串值。因此,如果你想在 sessionStorage 中存储一个 JS 对象,你必须 JSON.stringify() 该对象来存储它,并使用 JSON.parse() 检索它时。

最后,您的条件 block 始终将 $scope.basicMode 设置为 true:

if (sessionStorage.getItem("modePreview")) { // if modePreview is true
$scope.basicMode = sessionStorage.getItem("modePreview"); // set basicMode to true
} else { // otherwise, still set basicMode to true?
$scope.basicMode = true;
}

我认为您希望 else 语句为 $scope.basicMode = false,对吗?

更新工作 fiddle :https://jsfiddle.net/zx02f1yv/

关于javascript - 具有来自 sessionStorage 的值的切换按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54593178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com