Angular.js:是否可以根据现有范围数据重新渲染ng-repeats?

时间:2012-09-26 06:20:06

标签: angularjs scope refresh rerender

我的视图中有一堆连接的ul列表正在使用jQuery UI:Sortable指令,以便于拖放和重新排序列表项。

我通过jQuery UI进行的拖拽拖放我使用$scope函数应用于$apply,这部分有效......

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

用户可以选择:

  1. 填写表单并继续,然后$apply致电 将数据保留在$scope
  2. 点击取消按钮,而不是调用$apply来存储信息,应该有效地还原最后一次拖放交互,“重新渲染”我的所有列表,以反映{{1}中仍然存在的数据在这个阶段(因为最新的阻力对它没有任何影响)。
  3. 此“取消”按钮的效果有效地将所有内容还原到用户选择列表项并将其拖入另一个列表之前的位置。

    如何强制对我的$scope进行“刷新”或“重新呈现”,以便他们直观地刷新并再次显示当前的ng-repeat数据?

1 个答案:

答案 0 :(得分:22)

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

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

然后让用户根据自己的喜好使用表单编辑$ scope.data。

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