2017-03-14 90 views
0

我想要使用一個離子列表的這段代碼離子項目滑動時的錯誤:離子2離子項目滑動更新對象

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

我似乎是當我嘗試修改列表的設備元素時,我得到這個錯誤,但我不知道如何解決它,爲什麼會發生。

有什麼想法嗎? (我不想在設備上使用拼接功能,但將設備的播放器設置爲空)

謝謝。

回答

0

我不能現在這樣評論...

我的想法,以幫助你的是,如果你傳遞數組devices的關鍵和刪除實際device,因此函數看起來是這樣的:

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

是的,我知道該拼接工程,但那不是我想要的。我只是想讓該設備的播放器爲空,以便它不再與其鏈接。 – batmaniac

+1

@batmaniac很好,也許對於其他一些用戶應該像他們想要的那樣工作,有其他選擇是很好的。我希望我已經幫助 –

+0

謝謝你的幫助:) – batmaniac

1

OK,這個問題從* ngIf = 「device.player」 來到我[隱藏] = 「device.player!」 代替它和它的工作就像一個魅力;)