Как я могу установить флажок Материал, чтобы он не был отмечен / снят по умолчанию (например, вызов preventDefault()
для события), а также получил значение checked
из события?
Кажется, я могу выполнить только одно из условий. Используя событие (click)
, я не могу получить значение флажка, а используя событие (change)
, я не могу предотвратить изменение значения флажка по умолчанию (я изменю значение флажка только в том случае, если основной HTTP-запрос был успешным).
Stackblitz: https://stackblitz.com/edit/matcheckbox-checked
<mat-checkbox
[checked]="checked"
(click)="onClick($event)"
>onClick me!</mat-checkbox>
<br/>
<mat-checkbox
[checked]="checked"
(change)="onChange($event); false"
>onChange me!</mat-checkbox>
export class CheckboxOverviewExample {
checked: boolean = false;
onClick(event) {
event.preventDefault();
console.log('onClick event.checked ' + event.checked);
console.log('onClick event.target.checked '+event.target.checked);
}
onChange(event) {
// can't event.preventDefault();
console.log('onChange event.checked '+event.checked);
}
}
Событие (click)
печатает значения undefined
, но успешно предотвращает распространение события, событие (change)
печатает значение, но распространяет событие.
Связанные проблемы: