Javascript 在angularjs中从localstorage检索对象数组
我是爱奥尼亚和安格拉斯的新手。我正在尝试将对象数组存储到本地存储。如果我只存储一个对象(我能够检索数据),下面的代码就可以正常工作。当我试图存储和访问对象数组中的数据(打印为空白)时,就会出现问题 这是我的index.htmlJavascript 在angularjs中从localstorage检索对象数组,javascript,angularjs,html,ionic-framework,local-storage,Javascript,Angularjs,Html,Ionic Framework,Local Storage,我是爱奥尼亚和安格拉斯的新手。我正在尝试将对象数组存储到本地存储。如果我只存储一个对象(我能够检索数据),下面的代码就可以正常工作。当我试图存储和访问对象数组中的数据(打印为空白)时,就会出现问题 这是我的index.html <ul class="list"> <li class="item" ng-repeat="alarm in alarms"> {{alarm.hour}}: {{alarm.min}} {{alarm.pos}
<ul class="list">
<li class="item" ng-repeat="alarm in alarms">
{{alarm.hour}}: {{alarm.min}} {{alarm.pos}}
<span class="item-toggle">
<label class="toggle toggle-balanced">
<input type="checkbox" ng-model="alarm.on" ng-click="completeTask($index)">
<div class="track">
<div class="handle"></div>
</div>
</label>
</span>
</li>
</ul>
</ion-content>
我使用Mozilla中的storage Inspector验证存储在本地存储中的数据。结果是:
有人能帮我吗 localStorage.getItem('itemName')这是您要查找的内容,您需要修改getalarms函数:
$scope.getalarms = function (){
$scope.alarms = JSON.parse(localStorage.getItem('alarms'));
};
之前设置的报警必须首先检索并存储在变量中。然后将新的报警推入此变量,并将其放回存储器中。通过这种方式,您可以在存储器中存储一组对象。如果不检索当前保存的报警,则无法在存储器中保存多个报警,因为每个新报警都将覆盖以前的报警
$scope.createalarm = function (alarm) {
//retrive all alarms that are currently in our localStorage
//if we dont do that every new alarm will overwrite the old one
$scope.alarms = JSON.parse(window.localStorage.getItem('alarms')) || [];
//push the new created alarm
$scope.alarms.push({
hour : alarm.hour , min : alarm.min , pos : alarm.pos , on : true
});
//save the newly created alarm back in the storage
window.localStorage.setItem('alarms', JSON.stringify($scope.alarms));
$scope.setalarm.hide();
$scope.getalarms = function (){
$scope.alarms = JSON.parse(window.localStorage.getItem('alarms'));
};
}
您可以使用以下代码将阵列对象存储到本地存储器:
localStorage.setItem('alarms', JSON.stringify($scope.alarms));
要检索存储的值,请使用以下命令:
$scope.alarms = (localStorage.getItem('alarms')!==null) ? JSON.parse(localStorage.getItem('alarms')) : [];
你搞错了,因为它对我有用,你能创建一个plnkr吗?也许仅仅更改getItem方法并不能解决问题,问题是他设置的每个新警报都会覆盖以前的警报。更多信息在我的答案
$scope.alarms = (localStorage.getItem('alarms')!==null) ? JSON.parse(localStorage.getItem('alarms')) : [];