Javascript 在angularjs中从localstorage检索对象数组

Javascript 在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}

我是爱奥尼亚和安格拉斯的新手。我正在尝试将对象数组存储到本地存储。如果我只存储一个对象(我能够检索数据),下面的代码就可以正常工作。当我试图存储和访问对象数组中的数据(打印为空白)时,就会出现问题

这是我的index.html

    <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')) : [];