【发布时间】:2020-05-16 16:23:33
【问题描述】:
我对 Angular 真的很陌生。而且我发现很难从数组中获取一个项目并在该组件的相关 html 文件中输出。 下面的代码展示了bill-item.component.ts文件
的onClick函数arr: Array<any> =[];
itemArray: Array<any> =[];
onAddToBill(itemId:string, name:string , expireDate:string , quantity:string){
this.itemArray.push([itemId,name,expireDate,quantity]);
this.arr.push(this.itemArray);
console.log(this.arr);
}
我需要在我的 bill-item.component.html 上输出项目数组,如下所示
<tbody>
<tr *ngFor="let itemArrays of arr">
<td *ngFor="let obj of itemArrays">{{obj[1]}}</td>
<td *ngFor="let obj of itemArrays">{{obj[0]}}</td>
<td><input type="number" class="is-center" id="number" value="1" style="width: 50%;" /></td>
<td *ngFor="let obj of itemArrays">{{obj[2]}}</td>
<td *ngFor="let obj of itemArrays">{{obj[3]}}</td>
</tr>
</tbody>
下图显示了我添加第一个项目时的项目列表
这里所有的项目都加到同一行,我想把每个项目放在单独的行中,一行接一行。
然后我尝试了下面的代码
<tbody>
<tr *ngFor="let entries of arr">
<td>{{entries [1]}}</td>
<td>{{entries [0]}}</td>
<td><input type="number" class="is-center" id="number" value="1" style="width: 50%;" /></td>
<td>{{entries [2]}}</td>
<td>{{entries [3]}}</td>
</tr>
</tbody>
这就是结果。由于 ID 具有条目 [0],因此它填充了该数组中的所有实例。
【问题讨论】:
-
您面临的问题/错误是什么??
-
抱歉,我更新了问题。 @ShlokNangia
-
IMO 用对象替换内部数组会更有意义。特别是因为您试图以与数组不同的顺序呈现元素。
标签: arrays angular typescript