26

我的视图中有一堆连接ul列表,它们使用 jQuery UI:Sortable 指令来促进列表项的拖放和重新排序。

我通过 jQuery UI 的拖放进行的更改应用于$scope使用该$apply功能,这部分工作......

然而,我现在遇到的问题是,在放入其中一些列表时,我提供了一个用户需要填写的自定义表单。

用户可以选择:

  1. 填写表格并继续,然后$apply调用将数据保存到$scope
  2. 单击取消按钮,而不是调用$apply来存储信息,应该有效地“重新呈现”我的所有列表以反映仍处$scope于此阶段的数据(因为最新的拖动还没有对它有任何影响)。

这个“取消”按钮的效果是有效地将所有内容恢复到用户拿起列表项并将其拖入另一个列表之前的点。

如何强制“刷新”或“重新渲染”我ng-repeat的 s,以便它们在视觉上刷新并$scope再次显示当前数据?

4

1 回答 1

23

当用户开始填写表格时,我会设置

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

然后让用户使用他喜欢的表单编辑 $scope.data。

然后,如果用户按下取消,只需设置$scope.data = $scope.oldData.

于 2012-11-05T14:27:11.523 回答