Angular, как загрузить массив данных в меню множественного выбора - PullRequest
0 голосов
/ 04 октября 2019

Я предоставил структуру данных по ссылке ниже. У меня нет проблем с загрузкой данных в множественный выбор, когда при создании записей используется значение n * ngFor = "let data of FilteredYear" = = {{data}} "> {{data}}, теперь проблема заключается в том, чторедактирование и загрузка записей в множественный выбор. Я хотел загрузить массив данных, например, «год», в форму с разделителями-запятыми, и когда я выбираю или добавляю новые данные, эти выбранные должны уже проверяться на множественном выборе, и никакое значение не должнобыть выбранным дважды. Любая идея или ошибка с моим кодом? У меня нет проблем с загрузкой данных в поле с именем формы, проблема в том, чтобы выбрать несколько лет. Кстати, данные загружаются на this.frm = this.fb.group ...

HTML

        <mat-form-field>
            <input matInput placeholder="Name" formControlName="name" class="name-input">
            <mat-hint align="end"></mat-hint>
            <!-- <mat-error *ngIf="frm.controls.Stock.invalid"></mat-error> -->
        </mat-form-field>



        <mat-form-field>
            <mat-label>Year</mat-label>
            <mat-select  multiple formControlName="year">
              <mat-option *ngFor="let data of FilteredYear" value="{{ data }}">{{ data }}</mat-option>
            </mat-select>
          </mat-form-field>

Структура данных

https://imgur.com/a/xbbjUpN

Если при редактировании данные должны отображаться с таким множественным выбором, как показано на рисунке ниже, данные получены из let data = this.data.data;когда я предоставил структуру данных выше,

https://imgur.com/a/twIr968

компонент формы ts

initializeForm () {

if (this.data.action == 'edit') {

    let data = this.data.data;

    this.frm = this.fb.group({
        summer_sale_value: new FormControl(data.summer_sale_value, [Validators.required, Validators.minLength(5)]),
        name: new FormControl(data.name, [Validators.required, Validators.minLength(5)]),
        email: new FormControl(data.email, [Validators.required, Validators.minLength(5)]),
        body: new FormControl(data.data[0].body, null),
        make: new FormControl(data.data[0].make, null),
        year: new FormControl(data.data[0].year, null),
        model: new FormControl(data.data[0].model, null),
        _id: new FormControl(data._id),

    });

} else {



    this.frm = new FormGroup({
        summer_sale_value: new FormControl(null, [Validators.required, Validators.minLength(1)]),
        name: new FormControl(null, [Validators.required, Validators.minLength(4)]),
        body: new FormControl(null),
        make: new FormControl(null),
        year: new FormControl(null),
        model: new FormControl(null),


    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...