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

在角度 2 中使用 ngFor 和 ngIf 应用条件 [重复]

江展
2023-03-14

嗨,我一直在尝试使用ngIF和ngFor过滤数组,并取得了一些成功。

<button *ngFor="let item of items"> <div *ngIf="(item.data.type == 1)"> {{item.data.name}} </div> </button>

此代码仅为类型=1的数据显示带有名称的按钮,但它也为每个没有类型=1的数据条目创建空按钮,我不知道如何摆脱空按钮。非常感谢任何帮助。

共有3个答案

柳珂
2023-03-14

<代码>

getItems() {
  return this.items.filter((item) => item.data.type === 1);
}

其中this.items是此函数上方某处的项目数组。

看看这个

那鹏
2023-03-14

您可以创建自己的管道。这是更好的解决方案

@Pipe({
    name: 'somepipe',
})
export class SomePipe {

    transform(objects: any[]): any[] {
        if(objects) {
            return objects.filter(object => {
                return object.data.type === 1;
            });
        }
    }

}

并以这种方式在html中使用它:

<button *ngFor="let item of items | somepipe"> <div> {{item.data.name}} </div> </button>
凌展
2023-03-14

我会翻转你的按钮div

<div *ngFor="let item of items">
    <button *ngIf="(item.data.type == 1)">{{item.data.name}}</button>
</div>

这样,只为有效项目创建按钮。

如果

尽管由于性能原因不建议这样做,但您也可以在组件中使用函数

<button *ngFor="let item of filterItemsOfType('1')">{{item.data.name}}</button>

您的组件具有以下功能:

filterItemsOfType(type){
    return this.items.filter(x => x.data.type == type);
}

虽然这样做有效,但不建议这样做,应尽可能避免。

 类似资料:
  • 我想知道我是否有像这样的和的组合。当Angular创建其元素时,什么将首先运行? <代码> 想象一下,我们有一个包含几千个< code >项目的< code >项目列表,并且< code>ngFor首先运行,这种情况会使应用程序完全崩溃。当然,我可以使用一个< code>div来包装它,并将< code>ngIf放在那里,但是了解更多这方面的知识是非常重要的。谢了。

  • 问题内容: 我想在一行中使用ngIf和ngFor。我知道这是不可能的,但是还有其他方法可以做到吗? 这是我的代码: 问题答案: 一次只能在一个元素上使用一个结构指令。 作为解决方法,您可以使用未标记到DOM的方法

  • 我想在一行中使用ngIF和ngFor。我知道这是不可能的,但有没有其他方法可以做到这一点? 这是我的代码:

  • 在下面的代码中,我试图在< code >选项卡下显示所有< code >项目(对象),它们应该基于它们的类别。 类别必须相等。 编辑:如果还不清楚,请看这里。 我正在尝试遍历选项卡并将每个选项卡的名称添加到选项卡的“模板”中。 然后,我尝试遍历项目,如果项目的类别与选项卡的类别匹配,那么它将显示在选项卡下。 出于某种原因,它似乎不起作用。我做错什么了吗?< br >请原谅我和我的逻辑,过去两天一直

  • 我使用的是angular2,我正在从一个服务绑定数据,问题是当我加载数据时,我应该用id过滤它,这就是我应该做的: 这是数据: 顺便说一下,我只想接受id=1的数据,但我看到了这个错误: 那么有什么建议将ngif和ngfor一起使用吗?

  • 问题内容: 我希望div使用CSS从右角2滑入。 如果我仅使用[ngClass]来切换类并利用不透明性,则可以正常工作。但是li不想从一开始就渲染该元素,因此我先用ngIf“隐藏”了它,但是之后过渡将无法工作。 问题答案: 更新4.1.0 柱塞 另请参见https://github.com/angular/angular/blob/master/CHANGELOG.md#400-rc1-2017-