AngularJS ng-value布尔验证

时间:2013-04-16 23:06:56

标签: validation angularjs

具体来说:我有两个单选按钮,其ng-model值必须是布尔值。由于使用普通的html值属性是不可能的,因此我找到了有用的Angularjs ng-value。问题是,当我想要进行一些验证时,当选择单选按钮ng-value =“false”时,它会将其识别为空ng模型,并且我们有验证错误。

示例http://plnkr.co/edit/lvdNHZoSSN1nM6uLyc0Q?p=preview

如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

这是一个错误。

value="true/false"无法正常工作,因为加载模型时无法正确初始化和检查您的无线电输入,但ng-value="true/false"将无法正常工作,因为“错误”选择将导致表单无效。

我遇到了同样的问题并将其报告为一个问题,但由于无法确定何时解决,我还想出了一个解决方法:ng-boolean-radio

它基本上将模型的布尔值true / false值转换为字符串“true”/“false”值,这些值与表单的字符串value="true/false"属性相匹配。这将允许在模型加载时默认检查相应的无线电输入。它还允许您保存“false”值,因为"false" != false

最后,它通过将字符串“true”/“false”值转换回布尔值true / false来保留boolean数据类型,然后将它们保存在模型中。

我希望有所帮助!

答案 1 :(得分:2)

http://plnkr.co/edit/Y5vDuTug0kvS3Ut58Lz9?p=preview

问题出在required属性中。

我相信使用ng-required="!user.gender"是您正在寻找的。

编辑:似乎ng-required虽然略好一些,但仍无法完全发挥作用。

我的建议是完全省略require并使用默认值初始化您的模型:

{gender: true}false也可以)。

答案 2 :(得分:0)

我也有这个问题。迈克尔穆萨的指令非常适合调试复选框的/单选按钮的实际modelValue。事实证明,modelValue false undefined到达{{1}}复选框/单选按钮。更新(从1.2.0)到角度1.2.5 为我解决了问题。