【发布时间】:2015-08-28 05:12:58
【问题描述】:
我有一个 Angular 复选框,它的错误值为 undefined,尽管它不是 required,但由于 ng-invalid 作为一个类添加到取消选中的输入。
为什么会这样?
这是一个你可以搞砸的笨蛋: http://plnkr.co/edit/mFVcW1pI4wxf5lzRWoZE?p=preview
请注意第二个复选框的错误值为“未定义”。
<input type="checkbox" ng-model="checkboxModel.value" ng-true-value="'hi'" ng-false-value="undefined" class="ng-pristine ng-untouched ng-valid">
变成
<input type="checkbox" ng-model="checkboxModel.value" ng-true-value="'hi'" ng-false-value="undefined" class="ng-dirty ng-invalid ng-invalid-parse ng-touched">
未选中时,即使 required 和 ng-required 都不存在
【问题讨论】:
-
请在问题中贴出相关代码。
-
我相信你需要用单引号括起来。像这样 ng-false-value="'undefined'" " 'all things here' "
-
我有一个答案,使用
ng-model-options="{ allowInvalid: true }"... 但它实际上并没有像我想象的那样工作,所以我删除了那个答案。无论如何,您遇到的问题是parse错误。每当 $parser 返回 undefined 时,这就是parse错误。因此,您可以使用其他值(如null)或找出allowInvalid: true不起作用的原因。 -
添加了问题的代码。 @Yeysides 我希望该值未定义,而不是显示“未定义”的字符串。
-
@HankScorpio 您可以将其发布为答案,我会接受。我可以用 null 代替。
标签: javascript angularjs checkbox