Ionic 2'indexOf'为空错误

时间:2017-10-03 10:05:40

标签: angular ionic-framework ionic2

离子应用程序中的

我收到错误无法读取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并将购物车保存在存储空间中。

1 个答案:

答案 0 :(得分:0)

为什么要分配两次this.cart?在分配之前检查null值。

尝试修改您的代码,如下所示。

ionViewDidLoad(){
   this.storage.get('cart').then((val) => {
      if(val)
        this.cart = val;
   });
}