Сбросьте форму с помощью mat-select и получите ответный звонок на изменение - PullRequest
0 голосов
/ 01 ноября 2018

Использование матового выбора углового материала У меня есть событие change (или selectionChange в новой версии углового материала), когда опция была изменена. Но когда я сбрасываю форму, событие не запускается ... Как я могу это сделать?

онлайн код: https://stackblitz.com/edit/material2-beta11-pof3tu

@ViewChild(FormGroupDirective)
formGroupDirective: FormGroupDirective;

options = [
  'Option-1',
  'Option-2',
  'Option-3',
  'Option-4'
];

aForm: FormGroup;

constructor(fb: FormBuilder) {
  this.aForm = fb.group({
    selectForm: [null]
  })
}

selectChanged() {
  console.log('mat-select has changed!');
}

reset() {
  this.aForm.reset();
  this.formGroupDirective.resetForm();
}
<form [formGroup]="aForm">

  <mat-select formControlName="selectForm" placeholder="Enter an option" (change)="selectChanged()">
    <mat-option *ngFor="let option of options" [value]="option">
      {{ option }}
    </mat-option>
  </mat-select>

</form>

<button (click)="reset()">Reset</button>

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете подписаться на valueChanges для выбора элемента управления «Форма», в этом случае вам не нужно подписываться на событие изменения в шаблоне каждый раз, когда вы получаете уведомление об изменении значения.

this.aForm.get('selectForm').valueChanges.subscribe( value => {
      console.log('mat-select has changed! =>', value);
});

при сбросе формы вы получите уведомление при изменении значения на ноль

демо

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