【发布时间】:2021-09-16 22:56:13
【问题描述】:
我们正在使用 AngularJS,我们需要运行一个函数来确定用户单击的复选框是否被实际选中。我试图在ngChange 上传递$event,但发现它无法传递$event 对象。我想访问$event 对象的原因是我可以在调用所需的函数之前阻止默认行为。
代码如下(不包括我试图通过$event的代码,因为它不起作用):
<label for="specificCase">
Yes
<input
type="checkbox"
name="specificCase"
data-ng-click="specificCase.no = false; specificCase.unsure = false;"
data-ng-model="specificCase.yes"
data-ng-change="$ctrl.specificCaseCheck('yes', specificCase.yes)">
</label>
<label for="notSpecificCase">
No
<input
type="checkbox"
name="notSpecificCase"
data-ng-click="specificCase.yes = false; specificCase.unsure = false;"
data-ng-model="specificCase.no"
data-ng-change="$ctrl.specificCaseCheck('no', specificCase.no)">
</label>
控制器
function specificCaseCheck(value, boolean) {
//HERE I WANT TO PREVENT THE DEFAULT BEHAVIOUR OF THE CHECKBOX CHECKING
vm.optionSelected = !boolean ? false : true;
vm.caseSpecific = value == 'yes' && boolean ? true : false;
}
问题
在控制器中运行函数之前,如何保持未选中复选框?
【问题讨论】:
-
你试图达到的目的听起来有点模糊,你想在用户点击复选框时运行一个函数,并且只有在函数完成后才“检查”?
-
是的,所以他们可以检查它(点击它),但在函数运行之前,复选框不会显示为被选中
标签: angularjs angularjs-ng-change