【发布时间】:2017-06-08 12:04:35
【问题描述】:
我有自己的对象,其中包含使用 ngFor 循环的数据。但是对象中有一个数组部分,我也想在 <li></li> 中循环遍历它
目前它看起来像这样。但是我不想在一个<li></li> 中包含完整的字符串,我只想要一个数组。
相关代码:
tier.model
export class Tier {
constructor (
public id: number,
public title: string,
public rewards: any[],
public price: number
)
{}
}
组件:
export class PackagesComponent { //will be renamed to TierComponent
public tierToEdit: Tier;
editMode = false;
tiers: Tier[] = [
new Tier(
10,
'First Tier',
['Server access - Simple', 'Win something small', 'and so on'],
5.00),
new Tier(
11,
'Second Tier',
['Server access - Standard', 'Win something medium', 'and so on and on'],
10.00),
new Tier(
12,
'Third Tier',
['Server access - Advanced', 'Win something big', 'and so on and on and on'],
10.00)
]
模板:
<div class="row">
<div class="col-md-4" *ngFor="let tier of tiers; let i=index;">
<ul class="pricing-table">
<li class="plan-name">
{{ tier.title }}
</li>
<li *ngFor="let reward of tiers">
{{ reward.rewards }}
</li>
<p class="plan-price">{{ tier.price }}</p>
<li class="plan-action">
<a class="btn btn-primary" (click)="onEdit(tier)">Edit</a>
<a class="btn btn-success" (click)="this.clickSave()">SaveYes</a>
<a class="btn btn-warning" >Get</a>
</li>
</ul>
最后应该是这样的:
我尝试过的其他方法是:
<div class="col-md-4" *ngFor="let tier of tiers; let i=index;">
<!-- Show Mode -->
<ul *ngIf="!editMode || tierToEdit != tier" class="pricing-table">
<li class="plan-name">
{{ tier.title }}
</li>
<li *ngFor="let reward of tiers; let i=index">
{{ reward.rewards[i] }}
</li>
这比给了我第一个数组的第一个元素,第二个数组的第二个元素和第三个数组的第三个元素:
希望这不会让人感到困惑,对于 angular/javascript 来说还是很陌生,很抱歉可能会提出愚蠢的问题或使用错误的术语 :) 非常感谢!
【问题讨论】:
-
请创建一个 plnkr 或小提琴。
标签: javascript arrays angular angular2-template