AngularJS下拉框绑定整数0不显示问题求助
AngularJS下拉框绑定整数值不显示的问题解决
问题出在类型不匹配:AngularJS的<select>和ng-model采用严格类型匹配规则。你的vmDialog.dataModel.requestType是整数0,但HTML中<option>的value属性无论怎么写(value=0、value="{{0}}"、value="0"),最终都会被浏览器解析为字符串类型的"0",整数和字符串类型不匹配,导致无法选中对应选项。
解决方法:
- 推荐用
ng-value指令:它会保留值的原始类型,直接绑定整数到选项:
<select class="form-control" name="requestType" ng-model="vmDialog.dataModel.requestType"> <option ng-value="0">0</option> <option ng-value="1">1</option> <option ng-value="2">2</option> <option ng-value="3">3</option> </select>
- 动态选项用
ng-options:如果选项是动态生成的,这种方式更简洁且类型一致:
先在控制器定义选项数组:
vmDialog.requestTypes = [0, 1, 2, 3];
然后在模板中使用:
<select class="form-control" name="requestType" ng-model="vmDialog.dataModel.requestType" ng-options="type for type in vmDialog.requestTypes"> </select>
- 临时方案:转换
ng-model类型:如果业务允许,将vmDialog.dataModel.requestType的值转为字符串"0",也能匹配选项,但不推荐修改原始数据类型。
内容的提问来源于stack exchange,提问作者ChrisJnr Potgieter
相关产品推荐
相关产品推荐

