У меня есть две страницы, над которыми я работаю, и обе возвращают массив объектов.Когда я использую следующий код, новые результаты работают:
this.adminService.waiversGetAll()
.subscribe((data: Waiver[]) => {
this.waivers = data;
this.waivers.forEach((e) => {
if(e.has_signed === true) {
e.url = `<a href="${e.signatureUrl}">View</a>`
} else {
e.url = `<a href="${e.url}">${e.message}</a>`;
}
return e;
});
console.log(this.waivers);
})
}
Но когда я пытаюсь сделать то же самое с другим массивом (где мне нужно обновить значения массива, вложенного внутри), я надеваюне обновляются значения:
this.adminService.GetUnsignedWaivers()
.subscribe((data: Player[]) => {
console.log("data",data);
data.forEach(e => {
let record: Object = {};
for(let i = 0; i < e.waivers.length; i++) {
console.log(e.waivers[i].has_signed);
if (e.waivers[i].has_signed === true) {
e.waivers[i].url = e.waivers[i].signatureUrl;
console.log(e.waivers[i].url);
e.waivers[i].message = "View Waiver";
} else {
e.waivers[i].url = e.waivers[i].url;
e.waivers[i].message = e.waivers[i].message;
}
console.log(e.waivers[i].message);
return;
};
return e;
});
this.size = this.players.length;
console.log(this.players);
})
}
Когда я смотрю на console.log e.waivers [i] .has_signed, данные верны, но после этого они не верны.
Что я должен сделать, чтобы сделать эту работу?Я попытался использовать цикл for внутри foreach и кучу других вещей.
Данные, предоставленные в цикл, предоставляют такую информацию, как:
{
buyer: "email@someaddress.edu"
event: "COED A"
field: "Main"
net: null
player: {shirtSize: null, avp_id: 12345678, adult: true, …}
team: null
waivers: [{
email: "someemail@gmail.com",
has_signed: true,
message: "Liability Waiver",
signatureUrl: "https://somelink.pdf",
url: "https://somelink.com/somekeyidentifier"
}
ЕСЛИ игрок подписалwaiver, там будет поле signatureUrl, и в сообщении должно быть указано «View Waiver» вместо сообщения о том, какой тип отказа они подпишут.Я хочу, чтобы URL-адрес был установлен на signatureUrl, если они подписаны, поэтому я могу использовать его в таблице, которая не любит манипулирование данными.
Визуальное отображение того, что возвращается в моей таблице:
Все, что я получаю, - это 1600 записей, показывающих URL, как будто все не подписали, но когдаЯ console.log has_signed во внутреннем цикле, он показывает TRUE для тех, которые вместо этого должны отображать signatureUrl.