【问题标题】:Ionic 2 ion-item-sliding error when updating object更新对象时Ionic 2 ion-item-sliding错误
【发布时间】:2017-08-05 05:04:12
【问题描述】:

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

<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(device) 的删除按钮时 ,我收到以下错误:

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;
    }

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

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

谢谢。

【问题讨论】:

    标签: javascript angular ionic2


    【解决方案1】:

    我现在不能评论所以...

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

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

    【讨论】:

    • 是的,我知道 splice 可以工作,但这并不是我真正想要的。我只想让设备的播放器为空,这样它就不再链接到它了。
    • @batmaniac 好吧,也许其他一些用户应该像他们想要的那样工作,有其他选择很好。我希望我有所帮助
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-06-09
      • 2019-12-06
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 2017-07-16
      • 2017-06-02
      • 2020-11-18
      相关资源
      最近更新 更多