[英]How to sync checkbox inside toggle button in AngularJS?
我在按钮内有一个复选框:
<button ng-mousedown="active = !active">
<input type="checkbox" ng-checked="active"/>
Toggle!
</button>
单击该按钮可切换状态变量"active"
。 我想将复选框与"active"
同步。 如果我宣布
ng-model="active",
只要在复选框外按下按钮,该框就与按钮同步。
问题是当单击复选框时,它会更改状态,但也会将click事件发送到按钮,因此两个事件都会触发,因此该框变得不同步:
使用ng-click
而不是ng-mousedown
时会恢复同步行为,但是,我更喜欢使用后者,因为它感觉响应更快(按钮反应更快)。
有没有(Angular)方式我可以保持盒子同步并保持ng-mousedown
?
如果在复选框周围使用<label>
的默认行为而不是<button>
,则可以简化对额外事件处理的任何需求。 单击标签时,它将自动更改其中的任何单选按钮或复选框
<label ng-class="{active: active1}" >
<input type="checkbox" ng-model="active1"/>
Change ng-checked!
</label>
尝试这个
<button ng-class="{active: active1}" ng-mousedown="active1 = !active1">
<input type="checkbox" ng-model="active1" ng-change="active1=!active1"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.