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

时间:2019-01-16 04:37:04

标签: angular angular-material2

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

这是我的Mat选择列表。

 <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>

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

const preselectedOptions: Number[] = data.data.present_contact;
我想将这些值预先选择到mat-selection-list上。因此,我可以更新表格。

1 个答案:

答案 0 :(得分:0)

最好使用angular reactive forms来代替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>

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]]);
    }
}