angularjs在select里生成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>

结果如下:

angularjs在select里生成option时出现不能回显的解决办法_第1张图片


解决办法:

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

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

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

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

也有说赋初值,

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

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

你可能感兴趣的:(错误总结,问题解决)