YAS*_*AVE 3 arrays data-binding angular
我正在调用一个函数来复制*ngFor循环中的数据,如下所示.
<li (click)="replicateTicket(data);"> Replicate</li>
Run Code Online (Sandbox Code Playgroud)
在函数内部,我正在更新变量的名称和ID,并将其推送到数组中.(在给出的例子中,我没有推动数据更生动地解释行为.
replicateTicket(data:any){
data.name = data.name + ' (Replicated)';
console.log(this.ticketList[this.ticketList.length-1].id);
data.id = 0;
console.log(this.ticketList[this.ticketList.length-1].id);
}
Run Code Online (Sandbox Code Playgroud)
我想要的是如果原始数据的id是5而不是它不应该变为0.
运行plunker
点击458 abc.
它应该只更新新数据而不是当前数据.
难道我做错了什么?
您需要创建当前对象的副本,更改它然后将新对象推送到数组中,例如:(我使用了Plunker中的代码)
replicateTicket(ticket:any){
let t = JSON.parse(JSON.stringify(ticket));
t.name += ' (Replicated)';
t.id = 0;
this.ticketList.push(t);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |