Angular Formly - 选择带对象的输入

时间:2015-11-18 16:01:41

标签: angularjs angular-formly

请查看以下jsbin。我有一个select输入,有两个选项(俄亥俄州,纽约州)。在Select的ng-options范围内,我选择整个对象而不仅仅是名称或键值。我需要两个。

当我选择俄亥俄州时(例如),model正确更新显示所选对象:

"birthState": {    
    "Key": "1",    
    "Value": "Ohio"  
}

如果我将此代码添加到我的控制器中的model(默认情况下将字段设置为' Ohio'),则选择不会反映此默认设置。

我做错了什么阻止我将此下拉列表设为默认值?

1 个答案:

答案 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'}
    };