一、item recode可以添加具有改变顺序功能的item,可以使用ion-list或者ion-item-group来提供一个可视化的拖放界面
二、
所有的可以重新排序的item必须放在同一个节点下,如果一个item不能被拖放,那么他就不应该被放在一起,例如:
<ion-list reorder="true">
<ion-item *ngFor="let item of items">{{ item }}</ion-item>
</ion-list>
为了混合不同设置的item,我们可以使用ion-item-group
<ion-list>
<ion-list-header>Header</ion-list-header>
<ion-item-group reorder="true">
<ion-item *ngFor="let item of items">{{ item }}</ion-item>
</ion-item-group>
</ion-list>
要注意在这个例子中,[reorder]是卸载ion-item-group上面的而不是ion-list上的,这个方法可以把那些可拖放和不可拖放的item混合在一起。
三、实现拖放方法
当item被拖放并放到一个新的位置的时候,ionItemRecorder事件会被触发,这个事件提供了一个初始index和新位置的index,比如,从第一个位置被拖放到第五个位置,这事件将会是form 0 - 4 。
import { reorderArray } from 'ionic-angular';
class MyComponent {
items = [];
constructor() {
for (let x = 0; x < 5; x++) {
this.items.push(x);
}
}
reorderItems(indexes) {
this.items = reorderArray(this.items, indexes);
}
}