【已解决】angularjs的select里option显示为<option value=“? number:xxx ?“ ></option>
程序员文章站
2024-01-01 20:35:16
问题:功能可以正常使用,但是默认值或是之前选中的值无法正常在刚打开的页面显示:查看开发人员工具发现多了一个,而且保存刷新后不能回显。解决把ng-model绑定的数据变成字符串:ng-model="data.Mode+''"ng-model="data.Mode.toString()"寻因原因是value的值是一个字符串(写成value=0也不管用),ng-model却是个numb...
问题:
功能可以正常使用,但是默认值或是之前选中的值无法正常在刚打开的页面显示:
查看开发人员工具发现多了一个<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>
这样的话显示倒是可以正常显示,但是 打开开发人员工具,症结还是存在,而且在修改值之后,页面刷新之前,老毛病依旧。
最终解决方案:
在select
标签中添加convert-to-number
问题解决!
寻因
原因是value的值是一个字符串(写成value=0
也不管用),ng-model却是个number,类型不匹配
本文地址:https://blog.csdn.net/qq_32682301/article/details/112571822