Check out this CodePen example: http://cdpn.io/akCIe
I think it does what you are looking for. The sortableOptions include 'stop' & 'update' functions instead of using helper:"clone" which doesn't seem to work.
$scope.sortableOptions = {
connectWith: ".apps-container",
update: function (e, ui) {
if (ui.item.sortable.droptarget.hasClass('first')) {
ui.item.sortable.cancel();
}
},
stop: function (e, ui) {
if ($(e.target).hasClass('first') &&
e.target != ui.item.sortable.droptarget[0]) {
$scope.sourceScreens = originalScreens.slice();
}
}
};