У меня есть форма, содержащая входные данные и материальные компоненты (например, mat-select
или mat-checkbox
).
Каждый раз, когда изменение выполняетсяПользователь, я хочу сохранить их в БД.Поэтому я сделал что-то вроде <form (change)="save()">
.
. Это работает безупречно для собственных входных данных, но не срабатывает, когда пользователь изменяет значение компонента материала.
Я бы лучше избегалтакие решения, как использование <mat-select (selectionChange)="save()">
для каждого компонента, так как я легко могу забыть добавить его, когда мне придется обновить свою форму.
Изменить
Этоуправляемая шаблоном форма.Мой шаблон выглядит следующим образом:
<form (change)="save()">
<!-- Will trigger save -->
<mat-form-field class="col">
<input matInput placeholder="Name" name="name" [(ngModel)]="item.name">
</mat-form-field>
<!-- Will NOT trigger save -->
<mat-form-field class="col">
<mat-select placeholder="Category" name="category [(ngModel)]="item.category.id">
<mat-option *ngFor="let category of categories" [value]="category.id">{{category.name}}</mat-option>
</mat-select>
</mat-form-field>
<!-- ... -->
</form>
Код компонента не имеет ничего конкретного, только переменная модели (item: Item;
).