我收到错误无法读取null的属性'indexOf'。
这是我的HTML代码
<ion-list>
<button ion-item *ngFor="let item of items" (click)="itemSelected(item)" [ngClass]="cart.indexOf(item)>=-1 ? 'active' : 'none'">
<p >{{ item }}</p>
</button>
</ion-list>
和ts代码
itemSelected(item: string) {
if (this.cart.indexOf(item) == -1) {
this.cart.push(item);
this.isActive = true;
}else{
this.cart.splice(this.cart.indexOf(item),1);
this.isActive = false;
}
this.storage.set('cart', cart);}
上面我宣布
public cart: string[] = [];
ionViewDidLoad(){
this.cart = this.storage.get('cart').then((val) => {
return this.cart = val;
});
}
我想点击项目来更改ngClass并将购物车保存在存储空间中。
答案 0 :(得分:0)
为什么要分配两次this.cart
?在分配之前检查null值。
尝试修改您的代码,如下所示。
ionViewDidLoad(){
this.storage.get('cart').then((val) => {
if(val)
this.cart = val;
});
}