如何从数组中预选数据到 mat-selection-list

tan*_*mar 5 angular-material2 angular

我从 API 得到这样的字符串,55,118,122,126,116,58,125,119,132。这些是id。我有一个角垫选择列表。我想最初选择这些值。所以,基本上我想更新现有数据并再次发送。

这是我的垫子选择清单。

 <mat-selection-list #yuvakslist  [(ngModel)]="preselectedOptions" 
(selectionChange)="onChangeYuvak()">
<mat-list-option *ngFor="let yuvak of yuvaks" class="mt-1" [value]="yuvak.user_id">
          <nb-user name="{{yuvak.cnt_first_name + ' ' + 
 yuvak.cnt_last_name}}" size="large" title="{{yuvak.cnt_mobile_no}}"
          picture="{{thumbnailImg}}{{yuvak.profile_picture}}">
          </nb-user>
        </mat-list-option>
      </mat-selection-list>
Run Code Online (Sandbox Code Playgroud)

我尝试将我从 API 收到的所有 ID 分配给这样的数组。

const preselectedOptions: Number[] = data.data.present_contact;
Run Code Online (Sandbox Code Playgroud)

我想在 mat-selection-list 上预先选择这些值。所以,我可以更新表格。

Pan*_*ash 0

最好ngModel使用角反应形式来实现这一点。

这是一个例子

app.component.html

<mat-form-field>
    <mat-select placeholder="Users" [formControl]="userForm" multiple>
        <mat-option *ngFor="let user of userList" [value]="user">
            {{user.name}}
        </mat-option>
    </mat-select>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)

app.component.ts

import {Component} from '@angular/core';
import {FormControl} from '@angular/forms';

@Component({
    selector: 'app',
    templateUrl: 'app.component.html'
})
export class AppComponent {
    userList: any[] = [
        { name: 'Robin', id: 1 }, 
        { name: 'Pandey', id: 2 }
    ];
    userForm: FormControl;

    constructor() {
        this.userForm = new FormControl([this.userList[0]]);
    }
}
Run Code Online (Sandbox Code Playgroud)