当前位置: 首页 > 知识库问答 >
问题:

角度过滤表

毕泽宇
2023-03-14

我有完全合法的数据来源:

public data = [
  { Field1: 1, Field2: 'One' },
  { Field1: 2, Field2: 'Two' },
  { Field1: 3, Field2: 'Three' },
  { Field1: 4, Field2: 'Four' }
];

我将其显示在这样的表中:

<table>
  <thead>
    <th>Field1</th>
    <th>Field2</th>
  </thead>
  <tbody>
    <tr *ngFor="let item of data">
      <td>{{item.Field1}}</td>
      <td>{{item.Field2}}</td>
    </tr>
  </tbody>
</table>

现在假设我想过滤我的数组。如果我有固定的行数,我可以在< code>tr元素上使用< code>*ngIf来选择显示/不显示一个项目,但是Angular不允许在一个元素上有两个结构指令。

我知道我可以使用< code>Array.filter简单地过滤源数组,但是这样会产生一个副本,如果我的数组大得多,这可能会成为一个问题。

我想将该行嵌套在某个东西(< code>div)中,也许?),但我不确定这是不是有效的HTML。

那么,使用Angular 2动态过滤数据的正确方法是什么?

共有2个答案

施振海
2023-03-14

可能的方法:

  • 使用管道 -

Angular更喜欢将该数据过滤为另一个“副本”的方式。

https://angular.io/docs/ts/latest/guide/pipes.html#!#无过滤管道或orderbypipe-

原因是性能和迷你…

所以这取决于你。:)

如果你需要任何例子,给我一个评论,我会给你一个笨蛋。

应翰飞
2023-03-14

您可以使用以下内容:

<table>
  <thead>
    <th>Field1</th>
    <th>Field2</th>
  </thead>
  <tbody>
    <ng-container *ngFor="let item of data">
      <tr *ngIf="someCondition">
         <td>{{item.Field1}}</td>
         <td>{{item.Field2}}</td>
      </tr>
    </ng-container>
  </tbody>
</table>
 类似资料:
  • 问题内容: 我想在 angularjs 1.2中 使用unsafe-html 。没有html的过滤器可以工作,而html则不能。我做的事: 我在我的html头中添加了angular-sanitize: 我的角度模块: 我的HTML: 编辑:更新为 问题答案: 已在Angular 1.2中删除。由于您正确地清理了输入内容,因此应该使用。 示例:http://plnkr.co/edit/0bHeXra

  • 当用户选择一个标记时,我只想显示包含该标记的博客。例如,当一个用户选择了'c''标签时,只会显示带有该标签的帖子。 我的设置如下:我有一组包含post标签的博客,其中包含标签: null 这将显示blog-thumbnail组件 下面的代码部分是我的问题所在。它不起作用: 我在这方面花了大量的时间。有人能解释我做错了什么吗?

  • 问题内容: 我有一个带有一系列对象属性的对象,这些对象属性具有以下相似的结构(这是从服务返回数据的方式): 当我执行ng-repeat时,我可以遍历所有这5个对象,例如: 但是, 我真正想要做的是仅对那些不是“ foo”类型的项进行迭代 ,即3次迭代而不是5次。我知道可以以某种方式利用过滤器来执行此操作,但是我不确定如何执行。我尝试了以下方法: 但这不起作用。实际上,即使执行以下操作以将对象限制为

  • 问题内容: 我目前正在使用文本输入来过滤项目列表。我想这样做,以便在设置特定变量时,无论文本输入是什么,列表都不会过滤。关于如何实现此目标的任何建议? 问题答案: 如果将过滤器表达式设置为(或)(这会导致不应用过滤器)(设置您的时间),否则将其设置为实际过滤器表达式,则可以实现此目的。 编辑2 :另一个答案(@Ryan下面)更简单易懂。现在不记得它最初是否对我不起作用,或者我只是没有想到这种简单的

  • 问题内容: 我有一些要从json文件加载的html数据。 我通过在应用程序中使用ngSanitize并使用ng-bind-html来显示此html数据。 现在我想从标准转换json blob中的任何链接 至: 。 所以我在json文件上做了一些regExp来转换链接,但是出于某种原因,但是ng-bind-html过滤掉了ng- click的输出,我不知道为什么。是否应该这样做,如果可以,可以禁用此

  • 问题内容: 有没有什么好方法可以使用angular过滤列表而不使用ng- repeat?我不想首先使用javascript绘制列表,但是之后我想使用angular对其进行过滤。 例: 我想使用搜索框来过滤现有的html。 (一般请不要使用ng-repeat或jQuery给出任何示例) 问题答案: 您可以编写一个简单的指令来处理显示/隐藏: 并以这种方式使用它: 使用指令有两个好处: 1)。您不必在