一尘不染

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

angularjs

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

我通过jQuery UI的拖放进行的更改(适用于$scope$apply功能),该部分有效……

但是,我现在遇到的问题是,在下拉列表中的某些列表中,我提供了用户需要填写的自定义表单。

用户可以选择:

  1. 填写表格并继续,然后$apply调用将数据持久保存到$scope
  2. 单击“取消”按钮,而不是调用“ $apply存储信息”,它应有效地还原上一次拖放交互,以“重新渲染”我的所有列表,以反映$scope此阶段仍在的数据(因为最新的拖动没有对此没有任何影响)。

此“取消”按钮的作用是有效地将所有内容还原到用户拿起列表项并将其拖动到另一个列表之前的状态。

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


阅读 279

收藏
2020-07-04

共1个答案

一尘不染

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

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

然后让用户使用自己喜欢的形式编辑$ scope.data。

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

2020-07-04