我有一系列衬衫,每件衬衫都有一个价格,我想使用 Angular 2 获得所有衬衫的总价格。
这是我的数据的样子:
shirts: [
{
name: 'shirt 1',
cost: '20'
},
{
name: 'shirt 2',
cost: '10'
},
{
name: 'shirt 3',
cost: '10'
}
]
然后我想将成本加在一起并显示在我的组件中这大致是我到目前为止所要做的:
export class ShirtsListComponent {
shirts: Shirts;
constructor(@Inject(Shirts) csp: Promise<Shirts>, cdRef: ChangeDetectorRef) {
csp.then((cs) => {
this.shirts = cs;
cdRef.reattach();
});
for (var shirt in this.shirts) {
console.log(shirt);
}
}
}
麻烦的是,console.log(shirt)
这里没有返回任何内容,即使返回,我也不确定如何将新shirt
项目添加在一起。这个问题的另一个要素是我应该在组件上还是在服务中这样做?
编辑:
我做了以下更改,但我得到了0
,我应该得到40
html:
<ul class="list-group">
<li class="list-group-item" [shirtListItem]="shirt" *ngFor="#shirt of shirts"></li>
</ul>
<pre>{{totalShirts}}</pre>
更新的衬衫组件:
export class ShirtListComponent {
shirts: Shirts;
totalShirts:number = 0;
constructor(@Inject(Shirts) csp: Promise<Shirts>, cdRef: ChangeDetectorRef) {
csp.then((cs) => {
this.shirts = cs;
cdRef.reattach();
this.shirts.forEach(s => this.totalShirts += s.cost );
});
}
}