gpt4 book ai didi

javascript - 删除 Angular 中 ng-repeat 中的所有元素

转载 作者:行者123 更新时间:2023-11-30 16:02:23 24 4
gpt4 key购买 nike

我正在使用 Angular,我的部分页面使用 ng-repeat 来显示一些错误跟踪器票证。作为站点的一部分,我还想提供搜索票证的功能。我能够让那部分按我想要的方式工作,如果我只是附加新票证,它们会显示正常。

但是,如果用户进行搜索,我希望能够删除所有当前可见的工单 div,并将其替换为搜索结果。

我最初的想法是,因为我将 ng-repeat 设置为 item in tickets track by item.id,我最初的想法是设置 $scope.tickets 等于新数据。但是,这并没有导致 Angular 更新 DOM。

因此,我尝试将 $scope.tickets 设置为空数组,然后将其设置为新数据:

$scope.$apply(function() {
$scope.tickets = [];

$scope.tickets = data;
});

即使 console.log($scope.tickets) 显示了正确的对象,DOM 仍然没有更新。

我知道的方法

$scope.$apply(function() {
array.splice(index, 1);
});

删除单个元素,但我不确定如何应用删除所有元素。

我会尽快将 Plunkr 或 JSBin 添加到 Q。

让 Angular 用根据数据创建的新元素替换所有当前元素的正确方法是什么?

最佳答案

尝试设置 array.length = 0这会删除所有元素,同时不会删除对数组的引用,这实际上似乎是您的问题所在。

但另一种方法是拥有一个额外的数据包。

例如有 $scope.data.tickets 然后你可以像往常一样重新分配 tickets。重要的是,您必须使用 item in data.tickets

引用您的项目

关于javascript - 删除 Angular 中 ng-repeat 中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37526626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com