排序某些元素后如何重置 ng-repeat 块?

Posted

技术标签:

【中文标题】排序某些元素后如何重置 ng-repeat 块?【英文标题】:How to reset ng-repeat block after reordering some of it's elements? 【发布时间】:2020-04-24 17:03:38 【问题描述】:

我有一个使用数组作为数据的 ng-repeat。现在从 UI 中,我使用拖放重新排序元素。我有一个取消按钮,它应该重置 ng-repeat 以便元素的顺序根据数组的顺序返回。我不知道该怎么做。有什么方法可以通过 angularjs 或使用 jquery 来实现吗?

【问题讨论】:

如果不是很大,在初始化控制器时将数组复制到第二个 $scope 变量中。按下重置后,将“实时”数组替换为您制作的副本。 【参考方案1】:

一种方法是更改​​您的 $scope 变量。通过执行以下操作,您保留了数组顺序并触发 ng-repeat 重新渲染。

$scope.reset = function()

    // $scope.data is the variable that holds the array in ng repeat
    $scope.data =  angular.copy($scope.data)


【讨论】:

这很有魅力。你救了我一天!我先清空数组,然后在超时时再次分配数组,但这给我带来了很多 UI 故障。非常感谢 没问题。很高兴这对您有所帮助。 =)

以上是关于排序某些元素后如何重置 ng-repeat 块?的主要内容,如果未能解决你的问题,请参考以下文章

在 ng-repeat 中的某些元素周围添加包装器

如何在 ng-repeat 元素后添加空格?

如何在自定义指令中处理 ng-repeat 子元素?

如何使用 jquery 滑块过滤 ng-repeat 中的数据?

在 AngularJS 中为每个第 n 个元素自定义 ng-repeat

检测指令中的 ng-repeat 元素长度变化