I have a bunch of connected ul lists in my view which are using a jQuery UI: Sortable directive to facilitate drag and drop and reordering of the list items.
ul
When the user starts filling out the form, I would set
$scope.oldData = angular.copy($scope.data);
Then let the user edit $scope.data using the form as he likes.
Then if the user presses cancel, just set $scope.data = $scope.oldData.
$scope.data = $scope.oldData