mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-18 19:21:34 +08:00
fix(item): sliding item updates
This commit is contained in:
@ -39,14 +39,13 @@ import {CSS, raf} from 'ionic/util/dom';
|
|||||||
})
|
})
|
||||||
@View({
|
@View({
|
||||||
template:
|
template:
|
||||||
'<ng-content select="[item-left]"></ng-content>' +
|
'<ng-content select="ion-item-options"></ng-content>' +
|
||||||
'<ion-item-sliding-content>' +
|
'<ion-item-sliding-content>' +
|
||||||
'<ion-item-content>' +
|
'<ion-item-content>' +
|
||||||
'<ng-content></ng-content>'+
|
'<ng-content></ng-content>'+
|
||||||
'</ion-item-content>' +
|
'</ion-item-content>' +
|
||||||
'<ng-content select="[item-right]"></ng-content>' +
|
'<ng-content select="[item-right]"></ng-content>' +
|
||||||
'</ion-item-sliding-content>' +
|
'</ion-item-sliding-content>'
|
||||||
'<ng-content select="ion-item-options"></ng-content>',
|
|
||||||
directives: [NgIf]
|
directives: [NgIf]
|
||||||
})
|
})
|
||||||
export class ItemSliding {
|
export class ItemSliding {
|
||||||
@ -76,17 +75,19 @@ export class ItemSliding {
|
|||||||
var itemSlidingContent = this.ele.querySelector('ion-item-sliding-content');
|
var itemSlidingContent = this.ele.querySelector('ion-item-sliding-content');
|
||||||
var itemOptionsContent = this.ele.querySelector('ion-item-options');
|
var itemOptionsContent = this.ele.querySelector('ion-item-options');
|
||||||
|
|
||||||
|
console.log('List width', this.list.width());
|
||||||
|
|
||||||
this.itemSlidingContent = itemSlidingContent;
|
this.itemSlidingContent = itemSlidingContent;
|
||||||
this.itemOptions = itemOptionsContent;
|
this.itemOptions = itemOptionsContent;
|
||||||
|
|
||||||
this.itemWidth = itemSlidingContent.offsetWidth;
|
this.itemWidth = this.list.width();
|
||||||
this.itemOptionsWidth = itemOptionsContent && itemOptionsContent.offsetWidth || 0;
|
|
||||||
|
|
||||||
this.openAmount = 0;
|
this.openAmount = 0;
|
||||||
|
|
||||||
this.gesture = new ItemSlideGesture(this, itemSlidingContent);
|
this.gesture = new ItemSlideGesture(this, itemSlidingContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
close(andStopDrag) {
|
close(andStopDrag) {
|
||||||
this.openAmount = 0;
|
this.openAmount = 0;
|
||||||
|
|
||||||
@ -163,6 +164,9 @@ class ItemSlideGesture extends DragGesture {
|
|||||||
|
|
||||||
this.el.addEventListener('touchstart', (e) => {
|
this.el.addEventListener('touchstart', (e) => {
|
||||||
this.item.didTouch();
|
this.item.didTouch();
|
||||||
|
raf(() => {
|
||||||
|
this.item.itemOptionsWidth = this.item.itemOptions && this.item.itemOptions.offsetWidth || 0;
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
this.el.addEventListener('touchend', (e) => {
|
this.el.addEventListener('touchend', (e) => {
|
||||||
@ -176,6 +180,8 @@ class ItemSlideGesture extends DragGesture {
|
|||||||
onDragStart(ev) {
|
onDragStart(ev) {
|
||||||
if(this.item.didClose) { return; }
|
if(this.item.didClose) { return; }
|
||||||
|
|
||||||
|
if(!this.item.itemOptionsWidth) { return; }
|
||||||
|
|
||||||
this.slide = {};
|
this.slide = {};
|
||||||
|
|
||||||
this.slide.offsetX = this.item.getOpenAmt();
|
this.slide.offsetX = this.item.getOpenAmt();
|
||||||
|
@ -4,4 +4,10 @@ import {App} from 'ionic/ionic';
|
|||||||
@App({
|
@App({
|
||||||
templateUrl: 'main.html'
|
templateUrl: 'main.html'
|
||||||
})
|
})
|
||||||
class E2EApp {}
|
class E2EApp {
|
||||||
|
constructor() {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.shouldShow = true;
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -31,4 +31,14 @@
|
|||||||
<button primary>Archive</button>
|
<button primary>Archive</button>
|
||||||
</ion-item-options>
|
</ion-item-options>
|
||||||
</ion-item-sliding>
|
</ion-item-sliding>
|
||||||
|
|
||||||
|
<ion-item-sliding text-wrap detail-push *ng-if="shouldShow">
|
||||||
|
<h3>Max Lynch</h3>
|
||||||
|
<p>
|
||||||
|
Hey do you want to go to the game tonight?
|
||||||
|
</p>
|
||||||
|
<ion-item-options>
|
||||||
|
<button primary>Archive</button>
|
||||||
|
</ion-item-options>
|
||||||
|
</ion-item-sliding>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
|
Reference in New Issue
Block a user