У меня есть два компонента материала в одном HTML-файле и в той же форме. Это сделано на угловой версии материала 6.0.0
<mat-form-field [hideRequiredMarker]="hideRequired" [floatLabel]="floatLabel" class="mat-form-field-infix">
<mat-select id="select-status" formControlName="state" required disableOptionCentering>
<mat-option *ngFor="let status of statuses" [value]="status.value">{{ status.display | translate:{ company_name: (companyName$ | async) } }}</mat-option>
</mat-select>
</mat-form-field>
и
<mat-radio-group formControlName="rating">
<mat-radio-button id="feedback-rating-{{ rating }}" class="feedback-rating" *ngFor="let rating of ratings" [value]="rating">
{{ rating }}
</mat-radio-button>
</mat-radio-group>
Когда я использую их с реактивными формами, выбранное значение радиогруппы изменяется на последнее значение, когда вы нажимаете mat-select, даже не выбирая значение. (например, если переключатели выбирают от 1 до 5, 5 будет автоматически выбираться при касании выбора мата). Я бы предположил, что это из-за реактивных форм, потому что когда я удаляю и formControlName, изменение значения mat-select не влияет на текущее выбранное значение mat-ratio-group. Это инициализация формы
this.form = this.formBuilder.group({
state: [null, [Validators.required]],
rating: [null, [Validators.required]]
});
Я что-то упустил? Или кто-нибудь испытывал такое поведение? Если так, что ты сделал?
edit: вышеупомянутое поведение больше не повторяется. Это происходит только при первом нажатии на коврик