Angular 正式 - Select 输入对象

Angular Formly - Select input with object

请看下面jsbin。我有一个 select 输入,它有两个选项(俄亥俄州、纽约州)。在 Select 的 ng-options 中,我正在 select 整个对象,而不仅仅是名称或键值。我两个都需要。

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

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

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

我做错了什么阻止我给这个下拉菜单一个默认值?

您无法 select 因为所有对象都将具有唯一 ID。选项数组中的对象和模型(在控制器中)中分配的对象将以这种方式不同。

为了达到你想要的效果,尝试在 ng-options 中通过 option.Key 添加 track,并为控制器内部模型的 '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'}
    };