Как узнать текущее состояние элемента MatSelect (Multiselect) в угловом материале - PullRequest
0 голосов
/ 22 мая 2018

Я использую MatSelect с опцией множественного выбора.При проверке или снятии отметки с каждого элемента есть функция машинописного текста, которая будет вызываться каждый раз, поэтому проблема в том, что я не могу отличить, какое событие щелчка заполняется от пользовательского интерфейса, например.Apple проверила, затем вызывает API, и если Apple не проверяется, то ничего не предпринимайте

.html файл

 <mat-form-field>
    <mat-select [(value)]="selected" formControlName="tagList" id="tagList" placeholder="Select Tag" name="tagList" multiple>
      <mat-option *ngFor="let tag of tagList" [value]="tag" 
         (click)="isSelectedTagIsCallback(tag, $event.value)">
         {{tag.name}}
      </mat-option>
    </mat-select>
 </mat-form-field>

.ts file

isSelectedTagIsCallback(data, event) {
      if(checked){
         // Call API
      }
     else{
       // Do nothing
     }
}

Является ли вышеуказанный подход неправильным или правильным?Если правильно, то как мне получить это отмеченное / непроверенное событие или флаг для вызова API на основе значения

1 Ответ

0 голосов
/ 22 мая 2018

Попробуйте, вам не нужно передавать значение параметра в функцию: В вашем машинописном тексте, например, так:

selected: any = '';
isSelectedTagIsCallback() {
    if(this.selected!=''){
       alert(this.selected); //CALL API Here
    }else{
       // Do nothing
}

В вашем html-сообщении замените isSelectedTagIsCallback(tag, $event.value) на isSelectedTagIsCallback() В функции, которую выможно получить несколько значений флажка через запятую.

вот рабочий пример: angular-множественное значение, выбранное в материале

Надеюсь, это поможет вам!

...