Вы можете привязать значение элемента управления формы, чтобы установить флажок и передать значение в событии изменения.
Примерно так.
<mat-checkbox formControlName="IS_ACTIVE" (change)="checkboxChange('Y')" [checked]="form.controls.IS_ACTIVE.value == 'Y'">Active</mat-checkbox>
<mat-checkbox formControlName="IS_ACTIVE" (change)="checkboxChange('N')" [checked]="form.controls.IS_ACTIVE.value == 'N'">Inactive</mat-checkbox>
Я не уверен, есть ли лучший способ сделать это. Это всего лишь предложение. Надеюсь, это поможет.
РЕДАКТИРОВАТЬ : Ну, я думаю, что единственный вариант, который у вас есть, это использовать [(ngModel)] или formControlName и немного манипулировать вашими данными.
Во-первых, когда вы создаете элементы управления формой.
this.form = new FormGroup({
NAME: new FormControl(null, [Validators.required]),
IS_ACTIVE: new FormControl('Y')// change this to true or false. maybe a condition checking the value for the string. Eg. value == 'Y' ? true : false.
}
Далее, если вы делаете это внутри формы (что я и предполагаю), вы должны использовать formControlName.
<mat-checkbox formControlName="IS_ACTIVE" formControlName="IS_ACTIVE">Active</mat-checkbox>
Вам не нужно проверять событие изменения, поскольку логические значения связываются с элементом управления формы.
Затем перед сохранением измените значения элемента управления формы на «Y» или «N»
let boolVal = this.form.controls.IS_ACTIVE.value ? 'Y' : 'N'
//do something with boolVal
Это единственный вариант, который я могу придумать для достижения вашей цели. Я надеюсь, что это поможет снова.