Angular.js: Возможно ли повторное рендеринг ng-повторов на основе существующих данных области?
В моем представлении есть список подключенных ul
списков, которые используют директиву jQuery UI: Sortable для облегчения перетаскивания и переупорядочения элементов списка.
Изменения, которые я выполняю с помощью jQuery UI drag and drop Я применяю к $scope
с помощью функции $apply
, эта часть работает...
Проблема, с которой я столкнулась сейчас, заключается в том, что при переходе в некоторые из этих списков я предоставляю пользовательскую форму, которую пользователь должен заполнить.
Пользователь имеет возможность:
- заполнить форму и продолжить, после чего вызов
$apply
сохраняет данные в $scope
- нажмите кнопку отмены, которая вместо вызова
$apply
для хранения информации должна вернуть последнее взаимодействие перетаскивания/удаления, эффективно "перерисовывая" все мои списки, чтобы отразить данные, которые все еще находятся в $scope
, при этом (поскольку последнее сопротивление еще не повлияло на него).
Эффект этой кнопки "отменить" эффективно восстанавливает все до точки, прежде чем пользователь подберет элемент списка и перетащит его в другой список.
Как я могу заставить "обновить" или "повторно отобразить" моего ng-repeat
, чтобы они визуально обновлялись и отображали текущие данные $scope
снова?
Ответы
Ответ 1
Когда пользователь начинает заполнять форму, я бы установил
$scope.oldData = angular.copy($scope.data);
Затем разрешите пользователю редактировать $scope.data, используя форму, как ему нравится.
Затем, если пользователь нажимает отменить, просто установите $scope.data = $scope.oldData
.