Подтвердить что ты не робот

Angular.js: Возможно ли повторное рендеринг ng-повторов на основе существующих данных области?

В моем представлении есть список подключенных ul списков, которые используют директиву jQuery UI: Sortable для облегчения перетаскивания и переупорядочения элементов списка.

Изменения, которые я выполняю с помощью jQuery UI drag and drop Я применяю к $scope с помощью функции $apply, эта часть работает...

Проблема, с которой я столкнулась сейчас, заключается в том, что при переходе в некоторые из этих списков я предоставляю пользовательскую форму, которую пользователь должен заполнить.

Пользователь имеет возможность:

  • заполнить форму и продолжить, после чего вызов $apply сохраняет данные в $scope
  • нажмите кнопку отмены, которая вместо вызова $apply для хранения информации должна вернуть последнее взаимодействие перетаскивания/удаления, эффективно "перерисовывая" все мои списки, чтобы отразить данные, которые все еще находятся в $scope, при этом (поскольку последнее сопротивление еще не повлияло на него).

Эффект этой кнопки "отменить" эффективно восстанавливает все до точки, прежде чем пользователь подберет элемент списка и перетащит его в другой список.

Как я могу заставить "обновить" или "повторно отобразить" моего ng-repeat, чтобы они визуально обновлялись и отображали текущие данные $scope снова?

4b9b3361

Ответ 1

Когда пользователь начинает заполнять форму, я бы установил

$scope.oldData = angular.copy($scope.data);

Затем разрешите пользователю редактировать $scope.data, используя форму, как ему нравится.

Затем, если пользователь нажимает отменить, просто установите $scope.data = $scope.oldData.