欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【已解决】angularjs的select里option显示为<option value=“? number:xxx ?“ ></option>

程序员文章站 2022-03-29 23:10:13
问题:功能可以正常使用,但是默认值或是之前选中的值无法正常在刚打开的页面显示:查看开发人员工具发现多了一个,而且保存刷新后不能回显。解决把ng-model绑定的数据变成字符串:ng-model="data.Mode+''"ng-model="data.Mode.toString()"寻因原因是value的值是一个字符串(写成value=0也不管用),ng-model却是个numb...

问题:

功能可以正常使用,但是默认值或是之前选中的值无法正常在刚打开的页面显示:
【已解决】angularjs的select里option显示为<option value=“? number:xxx ?“ ></option>
查看开发人员工具发现多了一个<option value="? number:xxx ?" ></option>,而且保存刷新后不能回显。
【已解决】angularjs的select里option显示为<option value=“? number:xxx ?“ ></option>

解决

方法一:

把ng-model绑定的数据变成字符串:

  • ng-model="data.Mode+''"
  • ng-model="data.Mode.toString()"

刷新页面,当前看起来问题是解决了,可是值已经无法正常绑定到data.Mode了。(ng-model的双向绑定可以理解为两个过程,get和set,get过程没有问题,但是set会出现问题,option的value的值会set到data.Mode.toString()。。。)

方法二:

使用ng-selected

<select name="mode" ng-model="data.Mode">
    <option value="0" ng-selected="data.Mode==0">正竞价</option>
    <option value="1" ng-selected="data.Mode==1">负竞价</option>
</select>

这样的话显示倒是可以正常显示,但是 打开开发人员工具,症结还是存在,而且在修改值之后,页面刷新之前,老毛病依旧。
【已解决】angularjs的select里option显示为<option value=“? number:xxx ?“ ></option>

最终解决方案:

select标签中添加convert-to-number
【已解决】angularjs的select里option显示为<option value=“? number:xxx ?“ ></option>
问题解决!

寻因

原因是value的值是一个字符串(写成value=0也不管用),ng-model却是个number,类型不匹配


本文地址:https://blog.csdn.net/qq_32682301/article/details/112571822