【发布时间】:2016-06-29 17:07:35
【问题描述】:
我正在尝试使用 localStorage 更新 Angular 中范围输入的值。
这是我的 HTML 中的内容:
input type="range" id="myRange" value={{audio.volume}} min="0" max="1" step="0.01" ng-model="audio.volume" ng-change="adjustVolume()"
我希望范围的值是动态的。
这是我的 js:
$scope.adjustVolume = function (){
localStorageService.set("volume",$scope.audio.volume);
}
通过这种方式,我设法将“音量”键保存在 localStorage 中,但如果我刷新页面,范围滑块的位置会回到 1,即使 localStorage 仍设置为其他值号码。
如何保持范围的值与localStorage 的值相同,以及范围的位置。
【问题讨论】:
-
您的控制器中最初设置的 $scope.audio.volume 是什么?您可能不会在控制器加载时根据本地存储值定义它。
-
在页面加载时我会检查 if (localStorageService.get("volume") == null){ localStorageService.set("volume","1");} else{ localStorageService.set( "音量",$scope.audio.volume);因为我想如果 localStorage 中的密钥卷不存在,范围的值是 1,如果它已经存在是 localStorage 的值。
-
如果这是您的实际代码,那么逻辑是“如果 localStorageService.get("volume") 不为空,则将 'volume' 的 localStorageService 值设置为 $scope.audio.volume”。假设在这个阶段 $scope.audio.volume 没有值,逻辑只是说“如果 localStorage 中有值,则将其设置为 null”。尝试用以下代码替换您的代码: if (localStorageService.get("volume") == null){ localStorageService.set("volume","1");}; $scope.audio = $scope.audio || {}; $scope.audio.volume = localStorageService.get("volume");
标签: angularjs range local-storage angular-local-storage