Javascript 如何在Angular中使用ngFor获取嵌套对象数组的选定值?
我的目标是:Javascript 如何在Angular中使用ngFor获取嵌套对象数组的选定值?,javascript,angular,Javascript,Angular,我的目标是: test = [ {"obj1": {"time":"8:00","array":[{name: "user1", "language": "En"},{"name": "user4", "language": "Fr"}]}} {"obj2":
test = [
{"obj1": {"time":"8:00","array":[{name: "user1", "language": "En"},{"name": "user4", "language": "Fr"}]}}
{"obj2": {"time":"8:00","array":[{name: "user2", "language": "Fr"},{"name": "user3", "language": "Sp"}]}}
]
我的HTML:
{{obj.time}
{{item.name}
点击
如果我理解正确,您可以将迭代对象作为函数参数传递给TS。例如:
在HTML中,您应该:
<div *ngFor="let obj of test">
<div *ngFor="let item of obj.array">
<p>{{obj.time}}</p>
<p>{{item.name}}</p>
<button (click)="getDetails(obj, item)">Click</button>
</div>
</div>
对象数组的let项有问题,因为
数组
嵌套在动态属性中。在一个元素中,它嵌套在obj1
中,在下一个元素中,它嵌套在obj2
中。你可以让它工作,但是如果数据模型是一致的,它会更干净。还有一点调试技巧。在标记中,如果您将{{obj | json}}
放在其中,当您运行页面时,angular将吐出json中的obj
,因此您可以查看您正在处理的内容。是否要获取所有名称的值?我没有理解问题的重点。@JorgeMussato,当我单击按钮时,我应该得到相应的嵌套数组对象名称、语言以及主对象中的时间。
getDetails(obj, item) {
console.log(obj.time, item.name); // The values you want here.
}