[英]One way binding with ngModel in angular 4 it is not working with Observables
[英]angular ngModel binding not working properly
我的 class 中有 2 個列表,我有一個函數,它從第一個數組中獲取一個元素並將其推送到第二個數組。我的問題是如果我更改第二個數組的元素,第一個數組中的相同元素得到更改我嘗試了onchange function 和 [(ngModel)]
<div >
<p>{{item.name}}</p>
<p [hidden]="true" id={{item.name}} >
<input type="text" (change)=t($event,item.id) >
</p>
</div>
t(event,id:number)
{
console.log(event.target.value);
this.nodes2.find(a=>a.id===id).name=event.target.value;
}
//use this for pushing item
droppp(ev) {
ev.preventDefault();
//console.log(this.dragedElement)
var nodtmp:ExampleFlatNode[];
nodtmp=this.nodes2;
nodtmp.push(this.dragedElement);
this.nodes2=nodtmp;
}
拖動object的屬性值改變問題與ngModel無關,onChange事件也沒有。 問題是因為您沒有復制 object 本身,而只是復制它的參考。 在 drop function 中不要推送 object this.dragedElement
但將其更改為看起來像nodtmp.push({...this.dragedElement})
這應該創建一個已刪除的 ZA8CFDE6331BD59EB26666F8911ZC4 的副本。 如果您需要 object 的更深副本,請使用帶有deepClone
function 的lodash
庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.