I think I was inspired by @Richa123 from this post:
Here’s what’s working for me:
<ion-list *ngIf="items && auth.isLoggedIn()" reorder="{{ item ? true : false }}" (ionItemReorder)="reorderItem($event)">
// pos (Position) is not really an event, just data object:
reorderItem(pos) {
this.isReordering = true; // for preventing click propagation / drilldown
// from mouse down-up.
// on gapi reorder success call reorderArray:
var toIndex = (pos.to < pos.from) ? pos.to - 1 : pos.to;
this.items[pos.from].parent = this.item.id;
this.gapi.moveTask(this.items[pos.from], this.items[toIndex]).subscribe(
(success)=>{
if (success) {
reorderArray(calr.items, pos);
}
}
);
}
In my case, “item” is just the parent of “items,” which is an array of zero or more items. I imagine most cases would not be hierarchical like mine. isReordering is just a flag I’m using to prevent the reorder from being counted as a click.