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

*Angular 5中元素上的ngFor和*ngIf

吴高洁
2023-03-14

在我的 Angular 5 应用程序中,我正在循环创建 tr 元素:

<tr *ngFor="let element of elements">

但是我只想在满足某些条件的情况下显示该行。我知道我不能一起使用*ngFor*ngIF,但我不知道如何绕过这个问题。

我看到一篇文章说使用[ngIF]构造在tr中添加一个模板,但这似乎不再是有效的语法。如果我这样尝试:

<tr *ngFor="let element of elements">
    <template [ngIf]="element.checked || showUnchecked">

然后我得到运行时错误。

应用组件。html:14错误错误:StaticInjectorError(AppModule)[NgIf-

共有2个答案

公羊招
2023-03-14

ng容器将代替模板工作

<table><tr *ngFor="let element of elements">
<ng-container *ngIf="element.checked || showUnchecked">
  <td></td>
  <td></td>
</ng-container>
</tr>
<table>
马淇
2023-03-14

创建一个返回已过滤的属性元素的 getter。类似的东西

get filteredElements() {
    if( this.showUnchecked ) {
        return this.elements;
    } else {
        return this.elements.filter( () => { return this.checked; } );
    }
}
 类似资料:
  • 我遇到需要 *ngIf 和 *ngFor 指令的情况。我在堆栈上找到了很多答案,但对于这种情况没有答案。 我有一个表格,我在其中循环浏览对象数组并在标题中动态写入单元格: 我想显示/隐藏对象是否包含设置为 true 的可见值。我怎样才能做到这一点?

  • 当我在同一个元素上使用和时,我遇到了一个问题。 我知道简单的解决方案是在新元素上移动。例如: 但是当我使用这个解决方案时,我不能使用变量。并且这个解决方案隐藏了

  • 我有一个问题,试图在同一个元素上使用Angular的和。 当尝试在中循环遍历集合时,该集合被视为,因此在尝试访问模板中的属性时失败。 我知道简单的解决方案是将向上移动一个级别,但是对于像在中循环列表项这样的场景,如果集合是空的,我会得到一个空的,或者我的被包装在冗余容器元素中。 示例在这个plnkr。 注意控制台错误: 我做错什么了还是这是一个错误?

  • 我正在试验角2和角材料。我使用< code>*ngFor让Angular生成< code > 这是< code > order-form . component . html 中的部分代码,它要求用户输入不同种类水果的数量: 这是相应的<代码> order-form.compone 在Chrome浏览器中,当我右击“苹果”的时候

  • 我的用户可以将条目添加到滚动列表的底部。但是,滚动条在添加条目时不会自动下移,因此用户看不到他们新添加的条目。我如何保持我的滚动条总是在最向下滚动的位置,以显示最新的条目(使用角度5)?

  • 我想检查实际元素是否有值。 例如,我想检查巧克力是黑色还是白色。根据这个,我想显示正确的文本。 如何修复代码,使其正常工作?