У меня есть список ионов со скользящими элементами в нем, и я создаю их с помощью цикла for. Вы можете нажать на сам элемент, и маршрутизатор перейдет на другую страницу. Когда вы перемещаете элемент, появляется кнопка. и эту кнопку нужно дважды щелкнуть (в 90% случаев), чтобы выстрелить.
Я уже пробовал:
(щелчок) в тегах <ion-item>
и <ion-avatar>
. То же самое поведение :( Я позволяю пользователю создать элемент, и он добавляется в список. Этот список хранится в ионном хранилище с помощью this.storage.set ('list'); и список ионов создается из этого списка вышепока все хорошо, это не вызывает никаких проблем. и количество элементов списка также не влияет на поведение. ion-list находится в <div *ngIf = "loaded">
, а загруженный устанавливается в false позже в deleteHorse()
, так что это должноЭто ни на что не влияет. Когда я нажимаю на сам ионный элемент, он ведет себя правильно. Может ли быть так, что элемент покрывает параметры ионного элемента, и, таким образом, второй щелчок реализуется как нажатие на фактическую кнопку, а не наitem? Я попытался добавить жестко закодированный элемент с опциями скольжения - тоже самое ...
и сообщил об этом ионному на github
<div *ngIf="loaded">
<ion-list *ngFor="let item of items; let i = index" routerDirection="forward">
<ion-item-sliding #slidingItem (click)="dosomething()">
<ion-item >
<ion-avatar>
<img [src]=items[0].imgUrl>
</ion-avatar>
<h2>{{item[0].name}}</h2>
</ion-item>
<ion-item-options side="end">
<ion-item-option (click)="showSureAlert(i, slidingItem)">
<ion-button class="slideButton" >
<ion-icon name="trash"></ion-icon>
</ion-button>
</ion-item-option>
</ion-item-options>
</ion-item-sliding>
</ion-list>
</div>
async showSureAlert(index, item) {
console.log('clicked');
const text: any = [];
const alert = await this.alertCtrl.create({
header: text.header = this.translateService.instant('delete'),
message: text.message = this.translateService.instant('Warning.deleteHorse') + ' ' + this.horses[index][0].name + '?',
buttons: [
{
text: text.next = this.translateService.instant('no'),
handler: () => {
}
},
{
text: text.next = this.translateService.instant('yes'),
handler: () => {
// delete horsename
this.deleteHorse(index);
}
}
],
backdropDismiss: false
});
console.log('alert created');
await alert.present();
item.close();
}
На console.log()
это также влияет.
Я бы очень хотел использовать это, но если нет решения, я должен найти другую вещь ... заранее спасибо за вашу помощь.
редактировать
Я скопировалКод от ionicframework.com -> тот же результат
И адаптировал мой код к этому примеру. Изменение положения пунктов-опций (от конца к началу) сделало его немного лучше (70% времени, когда нужно дважды щелкнуть по нему)
посмотрите здесь: пример на github