gpt4 book ai didi

angular - 无法读取子 formArray 中未定义的使用 patchValue 的属性 'data'

转载 作者:行者123 更新时间:2023-12-04 16:06:31 24 4
gpt4 key购买 nike

我尝试通过选择选择框来动态呈现 cat_name。但我无法使用 patchValue 渲染 cat_name。下面是我呈现子 formArray 的代码。

通过使用更改事件选择选择框,我得到了基于值的名字,我过滤了 json 数组,我得到了特定的 formarray。

它有数据 formArray 我试图在选择选择框时呈现 cat_name 但我没有得到。下面是我的代码

selectarch(cat){

this.test=this.users.filter(data =>data.firstname === cat.target.value);

let arr = <FormArray>this.myForm.controls.users;

arr.controls[0].patchValue({firstname:this.test[0].firstname,lastname:this.test[0].lastname,street:this.test[0].street});

let arr2 = <FormArray>this.myForm.controls.users[0].data;
arr2.controls[0].patchValue({cat_name:this.test[0].data[0].cat_name});

}
<select (change)="selectarch($event)">
<option>Select</option>
<option [value]="res.firstname" *ngFor="let res of users">{{res.firstname}}</option>
</select>

下面是我的CODE URL CODE URL

下面是 json 用户数组。

users = [ { "firstname": "ramu", "lastname": "mothukuri", "city": "chennai", "street": "ramu sivan koiil street", "pin": "600024",
"data":[{"cat_id":"1","cat_name":"yyy","category":"rrr"},{"cat_id":"2","cat_name":"zzz","category":"222"}] },
{ "firstname": "ravi", "lastname": "mothukuri", "city": "chennai", "street": "ravi sivan koiil street", "pin": "600024","data":[{"cat_id":"1","cat_name":"ddd","category":"aaa"},{"cat_id":"2","cat_name":"aa","category":"333"}] },
{ "firstname": "manu", "lastname": "mothukuri", "city": "chennai", "street": "manu sivan koiil street", "pin": "600024","data":[{"cat_id":"1","cat_name":"jjj","category":"999"},{"cat_id":"2","cat_name":"bbb","category":"666"}] }
]

最佳答案

你应该获取数组形式的数据来修补 cat_name 的值

试试这个

const users = this.myForm.get(['users', 0, 'data']) as FormArray;

users.controls[0].patchValue({cat_name:this.test[0].data[0].cat_name});

Working example

关于angular - 无法读取子 formArray 中未定义的使用 patchValue 的属性 'data',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48522534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com