angularjs在select里生成option时出现<option value="? number:xxx ?" class=""></option>不能回显的解决办法

问题描述:

这段代码遍历时总会多一个<option value="? number:xxx ?" class=""></option>,而且点编辑后跳转到这个页面还不能回显

<select class="form-control" name="form.charttype" ng-model="form.charttype" ng-change="charttypeselector();">
    <option value="">请选择</option>
    <option value="new">新增</option>
    <option value="disabled" disabled>————————</option>
    <option value="{{ type.id }}" ng-repeat="type in charttypes">{{ type.name }}</option>
</select>

结果如下:


解决办法:

把你的ng-model绑定的数据变成字符串(可以+""来实现)

原因是你ng-repeat遍历出来的是字符串,ng-model却是个number,这里说的值都是id值,匹配不上造成(如果说错了打身上可以但别打脸),如果你是放在select里写ng-options请另外开个百度页

网上找了很多办法,大多数都是把遍历放在select里用ng-options(用for)来遍历,并说用track by xxx.id来解决,但那种情况直接把“请选择”,“新增”,“--------”都干掉了,

也有说在ng-repeat里用track by,我也试了没用,

也有说赋初值,

我是用上面方法解决了,还有点难找,百度里很少有,看了很多偶尔想起一个大神说的,贴在这里让其他人知道这个坑(而后绕行),

点个赞吧,你的鼓励是我最大的动力,多谢!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值