@@ -200,9 +200,12 @@ export class ItemReorder {
200
200
* @private
201
201
*/
202
202
reorderPrepare ( ) {
203
- let children : any = this . _element . children ;
203
+ let ele = this . _element ;
204
+ let children : any = ele . children ;
204
205
for ( let i = 0 , ilen = children . length ; i < ilen ; i ++ ) {
205
- children [ i ] . $ionIndex = i ;
206
+ var child = children [ i ] ;
207
+ child . $ionIndex = i ;
208
+ child . $ionReorderList = ele ;
206
209
}
207
210
}
208
211
@@ -315,25 +318,28 @@ export class ItemReorder {
315
318
} )
316
319
export class Reorder {
317
320
constructor (
318
- @Inject ( forwardRef ( ( ) => Item ) ) private item : Item ,
321
+ @Inject ( forwardRef ( ( ) => Item ) ) private item : ItemReorder ,
319
322
private elementRef : ElementRef ) {
320
323
elementRef . nativeElement [ '$ionComponent' ] = this ;
321
324
}
322
325
323
- getReorderNode ( ) {
326
+ getReorderNode ( ) : HTMLElement {
324
327
let node = < any > this . item . getNativeElement ( ) ;
325
- return findReorderItem ( node ) ;
328
+ return findReorderItem ( node , null ) ;
326
329
}
327
330
328
331
}
329
332
330
333
/**
331
334
* @private
332
335
*/
333
- export function findReorderItem ( node : any ) : HTMLElement {
336
+ export function findReorderItem ( node : any , listNode : any ) : HTMLElement {
334
337
let nested = 0 ;
335
338
while ( node && nested < 4 ) {
336
- if ( indexForItem ( node ) !== undefined ) {
339
+ if ( indexForItem ( node ) !== undefined ) {
340
+ if ( listNode && node . parentNode !== listNode ) {
341
+ return null ;
342
+ }
337
343
return node ;
338
344
}
339
345
node = node . parentNode ;
@@ -349,3 +355,10 @@ export function indexForItem(element: any): number {
349
355
return element [ '$ionIndex' ] ;
350
356
}
351
357
358
+ /**
359
+ * @private
360
+ */
361
+ export function reorderListForItem ( element : any ) : any {
362
+ return element [ '$ionReorderList' ] ;
363
+ }
364
+
0 commit comments