我有一个带有现有选项标签的现有选择标签,其中一个标记为“已选择”,例如:
<div class="form-group">
<label class="control-label">Test</label>
<select ng-model="vm.testNumber">
<option>Choose...</option>
<option value="1">one</option>
<option value="2">two</option>
<option value="3" selected>three</option>
</select>
<p class="help-block">{{vm.testNumber}}</p>
</div>
角度正确绑定到模型,并且在页面加载时在帮助块中弹出“ 3”,但是未选择选项3。如果我在每个选项的值属性中使用文本,它将绑定并显示3为选中状态,但当它是数字值时则不显示。而是在选择列表的顶部插入一个选项:
<option value="? number:3 ?"></option>
我究竟做错了什么?
最佳答案
从Angular DOC
请注意,不带ngOptions使用的select指令的值始终是字符串。当模型需要绑定到非字符串值时,您必须显式转换它或使用ngOptions来指定选项集。这是因为选项元素目前只能绑定到字符串值。
如果像下面的代码片段那样更改代码,则无需进行任何显式的字符串转换。
<select ng-model="vm.testNumber" ng-options="item.value as item.label for item in [{label: 'one', value: 1}, {label: 'two', value: 2}]">
<option value="">Choose...</option>
</select>
关于javascript - AngularJS没有绑定(bind)到选择列表中的数值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35835544/