@@ -282,18 +282,32 @@ angular.module('ui.sortable', [])
282282 ui . item . sortable [ key ] = undefined ;
283283 } ) ;
284284 } ,
285+ _connectedSortables : [ ] ,
285286 _getElementContext : function ( element ) {
286- return getElementContext ( this . _connectedSortables || [ ] , element ) ;
287+ return getElementContext ( this . _connectedSortables , element ) ;
287288 }
288289 } ;
289290 } ;
290291
291292 callbacks . activate = function ( e , ui ) {
293+ var isSourceContext = ui . item . sortable . source === element ;
294+ var savedNodesOrigin = isSourceContext ?
295+ ui . item . sortable . sourceList :
296+ element ;
297+ var elementContext = {
298+ element : element ,
299+ scope : scope ,
300+ isSourceContext : isSourceContext ,
301+ savedNodesOrigin : savedNodesOrigin
302+ } ;
303+ // save the directive's scope so that it is accessible from ui.item.sortable
304+ ui . item . sortable . _connectedSortables . push ( elementContext ) ;
305+
292306 // We need to make a copy of the current element's contents so
293307 // we can restore it after sortable has messed it up.
294308 // This is inside activate (instead of start) in order to save
295309 // both lists when dragging between connected lists.
296- savedNodes = element . contents ( ) ;
310+ savedNodes = savedNodesOrigin . contents ( ) ;
297311
298312 // If this list has a placeholder (the connected lists won't),
299313 // don't inlcude it in saved nodes.
@@ -302,16 +316,6 @@ angular.module('ui.sortable', [])
302316 var excludes = getPlaceholderExcludesludes ( element , placeholder ) ;
303317 savedNodes = savedNodes . not ( excludes ) ;
304318 }
305-
306- // save the directive's scope so that it is accessible from ui.item.sortable
307- var connectedSortables = ui . item . sortable . _connectedSortables || [ ] ;
308-
309- connectedSortables . push ( {
310- element : element ,
311- scope : scope
312- } ) ;
313-
314- ui . item . sortable . _connectedSortables = connectedSortables ;
315319 } ;
316320
317321 callbacks . update = function ( e , ui ) {
@@ -345,7 +349,8 @@ angular.module('ui.sortable', [])
345349 // That way it will be garbage collected.
346350 savedNodes = savedNodes . not ( sortingHelper ) ;
347351 }
348- savedNodes . appendTo ( element ) ;
352+ var elementContext = ui . item . sortable . _getElementContext ( element ) ;
353+ savedNodes . appendTo ( elementContext . savedNodesOrigin ) ;
349354
350355 // If this is the target connected list then
351356 // it's safe to clear the restored nodes since:
@@ -394,7 +399,8 @@ angular.module('ui.sortable', [])
394399 // That way it will be garbage collected.
395400 savedNodes = savedNodes . not ( sortingHelper ) ;
396401 }
397- savedNodes . appendTo ( element ) ;
402+ var elementContext = ui . item . sortable . _getElementContext ( element ) ;
403+ savedNodes . appendTo ( elementContext . savedNodesOrigin ) ;
398404 }
399405
400406 // It's now safe to clear the savedNodes
0 commit comments