【发布时间】:2018-09-17 09:11:18
【问题描述】:
如何实现 Material 复选框,使其默认不会被选中/取消选中(例如,在事件中调用 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) 事件打印值但将传播事件。
相关问题:
【问题讨论】:
-
你想禁用复选框?
-
@Chellappan 不,我想手动更改复选框的值(选中或未选中)。
标签: angular typescript event-handling angular-material2