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

标签 javascript angularjs

我正在使用 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/

相关文章:

javascript - jQuery 选择模式

javascript - 获取指令函数属性的参数并在另一个 Controller AngularJS中更改它

mysql - Delphi 和 Web 应用程序之间的行尾问题

javascript - Angular-carousel 不显示/不工作

javascript - ExpressJS 和 Cookie - 无法获取 express-cookie 来初始化 Cookie

JavaScript 获取所有加载的脚本

javascript - 将数字成绩转换为字母成绩 - 显示成绩的问题

javascript - 我怎样才能在 Javascript 的文本框中将文本对齐到右侧....???默认是左对齐

java - 无法从Spring Controller 中的http post正文读取参数

javascript - 引用错误 : Can't find variable: module in angular testing