当用户单击复选框时,ng-checked / ng-model会阻止对模型的更改

时间:2016-03-27 01:01:56

标签: javascript angularjs checkbox angular-ngmodel angularjs-ng-checked

我正在使用切换构建一个简单的表单。我想将切换绑定到我的模型welcomeEmail.welcome_email_on。当我点击切换按钮时,我想在控制器中调用toggleWelcomeEmail()。此函数将检查新状态是真还是假,然后执行某些操作。例如,如果切换关闭,并且用户单击它,则应该打开它。如果它已经打开,并且用户单击它,则toggleWelcomeEmail()函数应显示确认提示,并且切换应保持打开,直到用户在提示中确认操作为止。

我遇到的问题是,复选框上ng-modelng-checked的默认行为似乎是在用户点击复选框时更新模型。我想要做的是防止默认。我希望我的复选框/切换的状态反映模型,但是我不希望模型在单击时更新。相反,我更喜欢致电toggleWelcomeEmail()

我的问题是,我该如何做到这一点?我已尝试同时使用ng-checkedng-model,但两者的行为方式相同。我知道我可以根据welcomeEmail.welcome_email_on的状态创建两个切换并显示/隐藏它们,但是我放弃了我有的好切换动画。我也试过了$event.stopPropagation() ng-click行动的明显方法,但这没有效果。

I've created a fiddle to demonstrate the problem.

0 个答案:

没有答案