如何 setValue/PatchValue 反应形式的 ngselect 中的多个值
How to setValue/PatchValue multiple value in ngselect in reactive form
我有 ng select 由语言组成。一个用户可以有多种语言。在 ng select 上绑定多个 selected 值时显示空标签。我的代码在下面。 编辑时我想在 ng select 上显示已保存的语言标签,但它显示的标签是空的,请有人帮忙。我正在使用反应形式
**附上参考图片**
HTML
<ng-select class="w-100" [multiple]="true" [hideSelected]="true" placeholder="Please Select Language"
formControlName="language" [bindValue]="language.id" [bindLabel]="language.name"
>
<ng-option *ngFor="let language of languages" [value]="language.id">{{language.name}}</ng-option>
</ng-select>
Typescript
this.form.patchValue({ 语言: this.editData.teacherProfile.teacherProfile.language })
Data is retrieving in this form
"language": [
{
"_id": "5fb79cdd34ec021e64c2413e",
"name": "English",
"id": "5fb79cdd34ec021e64c2413e"
},
{
"_id": "5fb7996034ec021e64c2412a",
"name": "Arabic",
"id": "5fb7996034ec021e64c2412a"
}
],
ng-select 被一个数组“喂养”,但不是一个对象数组,否则是一个“id”数组,
我想你需要制作类似的东西:
myForm.get('language').setValue(
language.map(x=>x.id)
)
查看我们如何仅使用 map 创建具有 属性“id”的数组。
确保您为字段设置的值在字段的值选项中可用
假设为 select 下拉菜单的选项设置的值是 id,如 2、3、4,那么您需要设置相同的值,以便名称在那里可见
在上述情况下,当您使用结构共享数据时,您需要将所有 id 放入一个类似数组的数组中
languageID = [2, 3, 4, 5]
直接patch到字段
this.form.patchvalue({ languageid: this.languageID })
HTML
<ng-select class="w-100" [multiple]="true" [hideSelected]="true" placeholder="Please Select Language"
formControlName="language" [bindValue]="language.id" [bindLabel]="language.name"
>
<ng-option *ngFor="let language of languages" [value]="language.id">{{language.name}}</ng-option>
</ng-select>
Typescript
this.form.patchValue({ 语言: this.editData.teacherProfile.teacherProfile.language })
Data is retrieving in this form "language": [ { "_id": "5fb79cdd34ec021e64c2413e", "name": "English", "id": "5fb79cdd34ec021e64c2413e" }, { "_id": "5fb7996034ec021e64c2412a", "name": "Arabic", "id": "5fb7996034ec021e64c2412a" } ],
ng-select 被一个数组“喂养”,但不是一个对象数组,否则是一个“id”数组,
我想你需要制作类似的东西:
myForm.get('language').setValue(
language.map(x=>x.id)
)
查看我们如何仅使用 map 创建具有 属性“id”的数组。
确保您为字段设置的值在字段的值选项中可用
假设为 select 下拉菜单的选项设置的值是 id,如 2、3、4,那么您需要设置相同的值,以便名称在那里可见
在上述情况下,当您使用结构共享数据时,您需要将所有 id 放入一个类似数组的数组中
languageID = [2, 3, 4, 5]
直接patch到字段
this.form.patchvalue({ languageid: this.languageID })