更新对象时离子2离子项滑动错误

时间:2017-03-14 17:50:22

标签: javascript angular ionic2

我正在尝试使用此代码使用离子列表的离子项滑动:

<ion-list>
<ion-item-sliding *ngFor="let device of devices" class="item-sliding-joueur-balise">
    <ion-item class="item-joueur-balise" *ngIf="device.player">
    <ion-avatar item-left><img left="" src={{device.player.urlImage}}/></ion-avatar>
    <ion-label>{{device.player.name}}</ion-label>
    <ion-label right>Balise {{device.id}}</ion-label>
</ion-item>
<ion-item-options side="right">
    <button ion-button class="button-edit-balise" (click)="handleEditBalise(device)">
    <ion-icon class="icon-action" name="md-create"></ion-icon>
    <label class="label-action">Balise</label>
    </button>
    <button ion-button color="danger" style="width:80px" (click)="deleteDevice(device)">
    <ion-icon class="icon-action-size" name="trash"></ion-icon>
    <label class="label-action">Supprimer</label>
    </button>
</ion-item-options>
</ion-item-sliding>

但是当我点击执行deleteDevice(设备)的删除按钮时 ,我收到以下错误:

Uncaught TypeError: Cannot read property 'setElementStyle' of undefined
    at ItemSliding._setOpenAmount (item-sliding.js:396)
    at ItemSliding.close (item-sliding.js:477)
    at ItemSlidingGesture.closeOpened (item-sliding-gesture.js:104)
    at ItemSlidingGesture.canStart (item-sliding-gesture.js:50)
    at ItemSlidingGesture.PanGesture.pointerDown (drag-gesture.js:79)
    at PointerEvents.handleTouchStart (pointer-events.js:43)

deleteDevice函数是:

 deleteDevice(device: Device): void {
    device.player= null;
    }

我似乎在尝试修改列表的设备元素时遇到此错误但我不知道如何解决它以及为什么会发生这种情况。

有什么想法吗? (我不想在设备上使用拼接功能,但是juste将设备的播放器设置为空)

谢谢。

2 个答案:

答案 0 :(得分:1)

好的,问题来自* ngIf =&#34; device.player&#34; 我用[hidden] =&#34;!device.player&#34;替换它。它就像一个魅力;)

答案 1 :(得分:0)

我现在不能发表评论......

我的想法是,如果您传递数组devices的键并删除实际的device,那么该函数看起来像这样:

deleteDevice(key) {
   this.devices.splice(key, 1);
}