我正在组件的NgOnInit函数中加载“客户端”数组。调用之后,我要初始化一个类型为“ TimeSheet”的数组,其中将“客户端”作为元素。我这样做是这样的:
init(clients : Client[]) {
let i = 0;
this.timeSheets = new Array(clients.length);
for(let client of clients) {
console.log("client firstname" + client.firstName);
this.timeSheets[i] = new TimeSheet();
this.timeSheets[i].client = client;
console.log("client last name in timesheet: " +
this.timeSheets[i].client.lastName);
i++;
}
}
浏览器控制台打印出的图像显示了客户端的正确值:
client firstname Hans
client last name in timesheet: Müller
client firstname John
client last name in timesheet: Smith
client firstname Marie
client last name in timesheet: Curie
但是,在我的HTML模板中,仅显示第一个元素。这是我放在前端的部分:
<tr *ngFor="let timeSheet of timeSheets ;trackBy: trackId">
<td>{{timeSheet.client.lastName}}</td>
<td>{{timesheet.client.firstName}}</td>
<td><input type="text" (change)="calculate($index)"></td>
<td><input type="text"></td>
</tr>
奇怪的是,仅在第一个“时间表”中显示“客户端”的“姓氏”,其余的似乎都失败了,而没有说明原因。由于我的标签也消失了,我想我的html代码中有一些错误。我的浏览器控制台还指示“客户端”未定义,这使我困惑,因为第一个元素已正确打印。
ERROR TypeError: Cannot read property 'client' of undefined
此外,按钮标签和表标题都消失了,所以我想代码中有一些错误。请帮我找到它。
答案 0 :(得分:3)
{{timesheet.client.firstName}}
应该是
{{timeSheet.client.firstName}}
笔记盒