Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 将选择列表绑定到布尔值时的奇怪绑定/验证行为大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
将选择列表绑定到布尔值时,有人能解释一下以下奇怪的绑定/验证行为吗?

选择“是”(true)按预期工作.选择“否”(假)显然不会:

的jsfiddle
http://jsfiddle.net/mhu23/ATRQG/14/

$scope.truefalSEOptions = [{
    value: true,label: 'Yes'
},{
    value: false,label: 'No'
}];

<SELEct name="parameter" required ng-model="mymodel" ng-options="x.value as x.label for x in truefalSEOptions"></SELEct>

难道我做错了什么?我希望能够从下拉列表中选择“是”或“否”.选项的值应为true或false(布尔值,而不是字符串).

谢谢你的帮助!

解决方法

看起来必需的指令不会将false值视为有效,并将模型值设置为undefined:

Github source link

var validator = function(@R_197_7548@ {
    if (attr.required && (isEmpty(@R_197_7548@ || value === falsE)) {
      ctrl.$SETVALidity('required',falsE);
      return;
    } else {
      ctrl.$SETVALidity('required',truE);
      return value;
    }
  };

以下是一些选项:

>使用Ngrequired而不是必需.这允许您选择自定义的必需表达式,如:ng-required =“!(mymodel == true || mymodel == falsE)”.以Here is a fiddle为例.
>您可以创建自己的修改后的必需指令,允许使用false
>绑定到别的东西(1和0,或者像你提到的“真”和“假”)

另请注意,您可能需添加一个空选项值,以便第一项在选择后不显示“是”:

<SELEct name="parameter" ng-model="mymodel" ng-options="x.value as x.label for x in truefalSEOptions">
   <option value=""></option>
</SELEct>

大佬总结

以上是大佬教程为你收集整理的angularjs – 将选择列表绑定到布尔值时的奇怪绑定/验证行为全部内容,希望文章能够帮你解决angularjs – 将选择列表绑定到布尔值时的奇怪绑定/验证行为所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。