我的数据存储在字符串
中我使用JSON.parse将数据转换为数组
this.items = JSON.parse(todos);
我有一个打印出我的数组的结果页面: 数组1 ARRAY2 ARRAY3
我在每个数组后都有一个删除按钮,它从列表中删除项目但不从本地存储中删除。我做错了吗?
list.html
<ion-item-sliding *ngFor="let item of items">
<ion-item>
<p>{{item.amount}}tk X {{item.class}} / {{item.size}}ml / {{item.proof}}%</p>
</ion-item>
<ion-item-options>
<button danger (click)="removePost(item)">
<ion-icon name="trash"></ion-icon>Remove
</button>
</ion-item-options>
</ion-item-sliding>
list.ts
removePost(item){
let index = this.items.indexOf(item);
if(index > -1){
this.items.splice(index, 1); // works
this.storage.remove(this.items[index]); // doesn't work
}
}
答案 0 :(得分:0)
如果本地存储中有一个JSON数组作为字符串,并且如果要从本地存储阵列中删除对象,那么这将无效。
您无法删除对象,因为localstorage的整个值是字符串值。您可以做的是使用splice
删除值后,您可以再次设置localstorage
removePost(item){
let index = this.items.indexOf(item);
if(index > -1){
this.items.splice(index, 1); // works
//this.storage.remove(this.items[index]); // doesn't work
localStorage.setitem("name_of_the_storage",JSON.stringify(this.items))
}
}