请查看以下jsbin。我有一个select
输入,有两个选项(俄亥俄州,纽约州)。在Select的ng-options
范围内,我选择整个对象而不仅仅是名称或键值。我需要两个。
当我选择俄亥俄州时(例如),model
正确更新显示所选对象:
"birthState": {
"Key": "1",
"Value": "Ohio"
}
如果我将此代码添加到我的控制器中的model
(默认情况下将字段设置为' Ohio'),则选择不会反映此默认设置。
我做错了什么阻止我将此下拉列表设为默认值?
答案 0 :(得分:1)
您无法选择,因为所有对象都具有唯一ID。选项数组中的对象和模型中指定的对象(在控制器中)将以这种方式不同。
要实现您想要的效果,请尝试在ng-options中添加track by option.Key,并在控制器内为模型的'birthState'字段指定Key。
<script type="text/ng-template" id="select.html">
<select required type="number" ng-model="model[options.key]" ng-options="option.Value for option in to.options track by option.Key">
<option value="">Select One</option>
</select>
</script>
控制器内部
vm.model = {
"birthState": {Key: '3'}
};