我有一个angular 5 material checkbox
周围的div和其他一些元素。我希望点击div
与click
上的checkbox
直接相同。
这是我的示例代码:
<div (click)="checked = !checked">
<mat-checkbox class="example-margin" [(ngModel)]="checked">
I'm a not working checkbox :'(
</mat-checkbox>
<span style="background-color: #dddd00;">I want to be clickable too</span>
</div>
目前点击复选框本身不起作用,点击div外部工作。有什么想法吗?
答案 0 :(得分:3)
此处的问题是Click
上的div
事件以及[(ngModel)]
复选框上的事件均相互抵消,原因是它不起作用。
要使其正常工作,当您单击div元素时,需要stopPropagation
。所以我在div点击事件中执行了returning false
下面的代码,停止了它,你的代码就可以了。
component.ts
export class CheckboxConfigurableExample {
checked = false;
indeterminate = false;
align = 'start';
disabled = false;
onChecked() {
this.checked= !this.checked;
return false;
}
}
component.thml
<mat-card class="result">
<mat-card-content>
<h2 class="example-h2">Result</h2>
<section class="example-section">
<div (click)="onChecked();">
<mat-checkbox class="example-margin" [(ngModel)]="checked">
not working checkbox :'(
</mat-checkbox>
<span style="background-color: #dddd00;">I want to be clickable too</span>
</div>
</section>
</mat-card-content>
</mat-card>