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

Jan*_*nis 25 scope refresh rerender angularjs

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

我通过jQuery UI进行的拖拽拖放我申请$scope使用该$apply功能,这部分工作...

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

用户可以选择:

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

这个"取消"按钮的效果有效地将所有内容恢复到用户拾取列表项并将其拖入另一个列表之前的点.

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

And*_*lin 22

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

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

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

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

  • 默认情况下,angular将跟踪是否需要通过在转发器中的每个对象上放置一个`$$ hashKey`变量来重新呈现ng-repeat元素.如果`$$ hashKey`在其中一个索引上发生更改,则会重新呈现该索引.hashKey可以通过在数组中移动的元素,被删除或添加新元素来改变.您可以通过在项目跟踪项目中执行"ng-repeat ="项目来判断要跟踪的属性以查看它是否应该重新呈现 - 然后如果`item.id`在索引处发生变化,它会重新渲染. (3认同)