我遇到一个简单的情况:
我获得带有事件(干预对象)的日历。
当我单击事件时,它将打开模式。
要在打开之前获取模态信息,我使用位于“ CalendarServices”服务中的“ findByTicket”方法:
findByTicket(list: Intervention[], idSearch: number) {
return (list.find((x) => x.ticketDTO.idaiticket === idSearch));
}
这是调用此方法的TS文件:
openEventModal (event, action) {
console.log('Start openEventModal');
let intervention = this.calendarServices.findByTicket(this.confirmList, event.event.id);
if (typeof intervention === 'undefined') {
intervention = this.calendarServices.findByTicket(this.interventionInitList, event.event.id);
if (typeof intervention === 'undefined') {
console.log('nouveau ticket => ' + typeof intervention);
intervention = {} as Intervention;
// blabla
} else {
console.log('this.interventionInitList avant open: ');
console.log(this.interventionInitList);
console.log('intervention existante => ' + typeof intervention);
}
} else {
console.log('ticket ou intervention réédité ' + typeof intervention );
}
const dialogRef = this.dialog.open(ModalInterventionComponent, {
height: '50%',
width: '50%',
maxWidth: '100vw',
maxHeight: '100vh',
autoFocus: false,
data: {
myJarviaServices: this.myJarviaServices,
contactsList: this.contactsList,
prestatairesList: this.prestatairesList,
typesList: this.typesList,
intervention: intervention,
action: action
}
});
dialogRef.afterClosed().subscribe(result => {
if (result !== null) {
console.log('this.interventionInitList en sortie de modal: ');
console.log(this.interventionInitList);
if (action === 1) {
// case 1
} else {
// case 2
}
} else {
if (action === 1) {
// case 3
}
}
});
}
在这种情况下:使用“ findByTicket”功能在“ interventionInitList”列表中检索干预对象,该对象包含每个干预措施的原始信息(共有2个干预措施)。
更新信息后关闭模态时会发生问题: “ interventionInitList”项也将更新为我在模态中选择的值! 为什么???
以下是打开的日志(console.log说明),其中包含原始信息: 干预对象被发送到模态
这是在模态下更新干预对象信息后的日志:
该项目也在更新。但是我从来没有在我的代码中更新interactionInitList ...
为什么要保留此“链接”,我该如何解决? 我只想在此列表中检索原始信息,但不更新它