如何以反应形式在 ngselect 中设置Value/PatchValue多个值

Muh*_*yal 2 typescript angular-material angular-ngselect angular

我在从数据库填充 ng select 值时遇到麻烦。我选择了由语言组成的 ng。一个用户可以有多种语言。在 ng 上绑定多个选定值时,选择其显示的空标签。我的代码如下。在编辑时,我想在 ng select 上显示保存的语言标签,但它显示空标签,请有人帮忙。我正在使用反应形式 **附有参考图片**

超文本标记语言

 <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>
Run Code Online (Sandbox Code Playgroud)

打字稿

this.form.patchValue({ 语言: this.editData.teacherProfile.teacherProfile.language })

数据以这种形式检索 "language": [ { "_id": "5fb79cdd34ec021e64c2413e", "name": "English", "id": "5fb79cdd34ec021e64c2413e" }, { "_id": "5fb7996034ec021e64c2412a", "name": "阿拉伯语", "id": "5fb7996034ec021e64c2412a" } ],

小智 5

确保为字段设置的值在字段的值选项中可用

假设设置为选择下拉列表选项的值是 id,如 2、3、4,那么您需要设置相同的值,以便名称在那里可见

在上述情况下,当您使用结构共享数据时,您需要将所有 id 放入一个类似数组的数组中

languageID = [2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

并直接将其修补到现场

   this.form.patchvalue({ languageid: this.languageID })
Run Code Online (Sandbox Code Playgroud)