【发布时间】:2020-12-31 06:39:37
【问题描述】:
我有一个Ionic 应用程序,我将数据存储在localStorage 中。要求是我想从基于用户click 的localStorage 对象的数组中删除一些项目。
我有以下代码,但不知何故无法正常工作。请建议我在哪里做错了。
home.html:
<ng-container *ngFor="let item of items[0]">
<ion-item no-lines class="items" *ngIf='this.items!= 0' (click)="deletereminder(item)">
<ion-row>
<ion-col>
<h3 ion-text class="items">
Reminder {{item [0] + 1}}
</h3>
</ion-col>
<ion-col>
<h3 ion-text class="items">
{{item [1] | date:'medium'}}
</h3>
</ion-col>
<ion-col style="text-align: right;">
<h3 ion-text class="itemdelete">
<ion-icon name="trash"></ion-icon>
</h3>
</ion-col>
</ion-row>
</ion-item>
</ng-container>
home.ts:
deletereminder(item){
var newObj = JSON.parse(localStorage.getItem('Data'));
console.log("index to delete",item);
newObj.data.splice(item, 1)
localStorage.setItem('Data', JSON.stringify(newObj));
}
我的localStorage 看起来像这样:
Key : Data
Value : {"data":[[0,"1600074900000"],[1,"1600679760000"]]}
问题是上面的home.ts 正在删除完整的array 而不是点击的项目。
函数(click)="deletereminder(item)" 返回要删除的正确项目。例如,如果我单击任何项目0,"1600074900000",它将返回0,"1600074900000"。我已经检查了 console.log(item)。
但它不会删除我正在选择的项目。相反,它正在从数组顶部删除项目。例如,如果数组有 3 条记录,则从上到下删除记录。而且当它到达最后一条记录时,它不会删除最后一条记录。
【问题讨论】:
-
您能否同时发布
item和您在本地存储中设置的数组/对象,以便我们有更好的想法来玩。 -
您的 UI 与您的代码看起来如何,您可以发布图片吗?
标签: angular typescript ionic-framework local-storage