簡體   English   中英

Angular4模板中的嵌套循環,沒有嵌套元素

[英]Nested loop in Angular4 template without nesting elements

我想在沒有嵌套元素的角度模板中嵌套循環。

例如偽代碼:

component.ts

let titles: string[];
let content: { title: string, text: string }[];

getContentByTitle(t: string) {
  return this.content.filter(c => c.title === t);
}

template.html

<div myDirective *ngFor="let title of titles">
 {{title}}
 <div myDirective *ngFor="content of getContentByTitle(title)">
  {{content.text}}
  </div>
</div>

但這會影響我的div。 我正在嘗試創建一個平面列表,每個:

<div myDirective>
{{title}}
</div>
<div myDirective>
{{content.text}}
</div>
<div myDirective>
{{content.text}}
</div>
<div myDirective>
{{title}}
</div>
<div myDirective>
{{content.text}}
</div>
etc...

這可能嗎?

在這種情況下,您可以使用ng-container ,您將編寫嵌套代碼,但輸出不會嵌套。

<ng-container *ngFor="let title of titles">
  <div myDirective>
   {{title}}
  </div>
  <ng-container *ngFor="text of getContentByTitle(title)">
    <div myDirective>
      {{text}}
    </div>
  </ng-container>
</ng-container>

從Angular doc ng-container

Angular <ng-container>是一個不會干擾樣式或布局的分組元素,因為Angular不會將它放在DOM中。

我希望它可以幫到你!

使用ng-container

<div myDirective>
  <ng-container *ngFor='let o of objects'>
     {{o}}
  </ng-container>
</div>

它展開為:

<div myDirective>
  {{o}}{{o}}{{o}}{{o}}...
</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM