Angular 角度数组动态绑定绑定到所有元素,而不是1
我有一个数组对象,如下所示Angular 角度数组动态绑定绑定到所有元素,而不是1,angular,typescript,Angular,Typescript,我有一个数组对象,如下所示 let myArray=[ { "id":"100", "child1":[ {"id":"xx","Array":[]}, {"id":"yy","Array":[]}, {"id":"zz","Array":[]} ] }, { "id":"200", "child1":[ {"id":"xx","Array":[]}, {"id":"yy","Array":[]}, {"id":"zz
let myArray=[
{ "id":"100",
"child1":[
{"id":"xx","Array":[]},
{"id":"yy","Array":[]},
{"id":"zz","Array":[]}
]
},
{ "id":"200",
"child1":[
{"id":"xx","Array":[]},
{"id":"yy","Array":[]},
{"id":"zz","Array":[]}
]
}
]
我有像贝娄一样的棱角模板
<div *ngFor="let obj of myArray">
Id:{{obj.id}}
<div *ngFor="let objChild of obj.Child1">
Id:{{objChild.id}}
Array:{{objChild.Array}}
AddElementtoArray:<button (click)="add(objChild.Array)">add</button>
</div>
</div>
如果单击id 1的add按钮,则id 1和2的子数组的值都会被添加,我尝试了其他的可能性,比如获取索引并在代码中过滤它,尝试为特定的对象子数组添加值,但它会同时为对象1和2添加值,请告诉我如何修复此问题,通过发送父级和子级索引来尝试此操作,这将帮助您获取特定元素
<div *ngFor="let obj of myArray; let parentIdx = index;">
Id:{{obj.id}}
<div *ngFor="let objChild of obj.Child1; let childIdx = index;">
Id:{{objChild.id}}
Array:{{objChild.Array}}
AddElementtoArray:<button (click)="add(parentIdx, childIdx
)">add</button>
</div>
</div>
嗨,谢谢你的重播,我也试过了,但它仍然绑定到所有的Array对象。我使用了另一个角度变量来生成子对象,我没有进行深度复制,这就是问题所在
<div *ngFor="let obj of myArray; let parentIdx = index;">
Id:{{obj.id}}
<div *ngFor="let objChild of obj.Child1; let childIdx = index;">
Id:{{objChild.id}}
Array:{{objChild.Array}}
AddElementtoArray:<button (click)="add(parentIdx, childIdx
)">add</button>
</div>
</div>
add(parentidx, childidx) {
this.myArray[parentidx].Child1[childidx].Array.push('xxx');
}