*ngFor ng-content Angular 的元素
*ngFor on elements of ng-content Angular
我想知道是否可以创建 . 的某些元素的迭代。 ng-content 的每个元素都需要一个不同的 css class,所以我需要对 ng-content 的每个元素进行循环。可能吗?
现在我将一个参数传递给 child 元素来枚举他,但我想在没有数字的情况下这样做。这是我的代码:
<sys-tab [tabs]="['Principal', 'Complementar']">
<sys-tab-content [num]="1">
<sys-panel header="Dados Gerais">
<sys-input-text header="Nome" tam="1"></sys-input-text>
<sys-input-mask header="CNPJ"></sys-input-mask>
<sys-input-mask header="CNES"></sys-input-mask>
<sys-input-mask header="Telefone"></sys-input-mask>
<sys-input-text header="Email"></sys-input-text>
</sys-panel>
</sys-tab-content>
<sys-tab-content [num]="2">
<sys-input-text header="Email"></sys-input-text>
</sys-tab-content>
</sys-tab>
如您所见,我向 child 传递了号码,以便我可以识别他是谁,但我想创建一个到 ng-coontent 的循环,以便我可以添加不同的 class 每 "sys-tab-content"
有两种方法可以添加 "ngFor" 或遍历子项。
一种是嵌入:另一种是检查父组件的ViewChildren。
带有动态 ngTemplate 的简单列表示例
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html'
})
export class AppComponent {
items = [ { name: 'abc' }, { name: 'cdf' }, { name: 'fgh' } ];
}
app.component.html
<nu-list [itemTpl]="itemTpl" [items]="items"></nu-list>
<ng-template let-item #itemTpl>
<h1>{{item.name}}</h1>
</ng-template>
list.component.ts
import { Component, Input } from '@angular/core';
@Component({
selector: 'nu-list',
templateUrl: './list.component.html'
})
export class ListComponent {
@Input() itemTpl;
@Input() items;
}
list.component.html
<ng-container *ngFor="let item of items">
<ng-container *ngTemplateOutlet="itemTpl; context: {$implicit: item}"></ng-container>
</ng-container>
示例 Link:https://stackblitz.com/edit/angular-list-ngtemplateoutlet
我想知道是否可以创建 . 的某些元素的迭代。 ng-content 的每个元素都需要一个不同的 css class,所以我需要对 ng-content 的每个元素进行循环。可能吗?
现在我将一个参数传递给 child 元素来枚举他,但我想在没有数字的情况下这样做。这是我的代码:
<sys-tab [tabs]="['Principal', 'Complementar']">
<sys-tab-content [num]="1">
<sys-panel header="Dados Gerais">
<sys-input-text header="Nome" tam="1"></sys-input-text>
<sys-input-mask header="CNPJ"></sys-input-mask>
<sys-input-mask header="CNES"></sys-input-mask>
<sys-input-mask header="Telefone"></sys-input-mask>
<sys-input-text header="Email"></sys-input-text>
</sys-panel>
</sys-tab-content>
<sys-tab-content [num]="2">
<sys-input-text header="Email"></sys-input-text>
</sys-tab-content>
</sys-tab>
如您所见,我向 child 传递了号码,以便我可以识别他是谁,但我想创建一个到 ng-coontent 的循环,以便我可以添加不同的 class 每 "sys-tab-content"
有两种方法可以添加 "ngFor" 或遍历子项。
一种是嵌入:另一种是检查父组件的ViewChildren。
带有动态 ngTemplate 的简单列表示例
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html'
})
export class AppComponent {
items = [ { name: 'abc' }, { name: 'cdf' }, { name: 'fgh' } ];
}
app.component.html
<nu-list [itemTpl]="itemTpl" [items]="items"></nu-list>
<ng-template let-item #itemTpl>
<h1>{{item.name}}</h1>
</ng-template>
list.component.ts
import { Component, Input } from '@angular/core';
@Component({
selector: 'nu-list',
templateUrl: './list.component.html'
})
export class ListComponent {
@Input() itemTpl;
@Input() items;
}
list.component.html
<ng-container *ngFor="let item of items">
<ng-container *ngTemplateOutlet="itemTpl; context: {$implicit: item}"></ng-container>
</ng-container>
示例 Link:https://stackblitz.com/edit/angular-list-ngtemplateoutlet