0

我使用从外部源获取的对象构建控件。

var field= {
          "attributeName": "Country",
          "dbColumnName": "location",
          "fieldType": "DROP_DOWN",
          "optionName": ['US', 'AUS', 'UK', 'IND'],
          "optionValue": ['123','456','789','0123']
        }

控件是从上面的对象创建的

<select name="{{field.attributeName}}" ng-model="formControlsValues[field.dbColumnName]"/>
   <option ng-repeat="item in field.optionName track by $index" ng-value="field.optionValue[$index]">
       {{item}}
   </option>
</select>

field.optionName 是一个数组,而 item 将是一个显示值。field.optionValue[$index] 是另一个映射为值的数组。

在 Angular 中使用上述两个数组时在 Selectbox 中标记默认值,如何实现?

4

1 回答 1

2

如果我做对了,你想在选择输入中设置一个默认值。坚持你的代码,我设置了一个default_index值并用它来初始化输入和选项。

<select name="{{field.attributeName}}" 
  ng-init="field.itemsel = field.optionValue[default_index]" 
  ng-model="field.itemsel">
   <option ng-repeat="item in field.optionName track by $index" 
   ng-selected="default_index == $index"
   ng-value="field.optionValue[$index]">
       {{item}}
   </option>
</select>
<p>
  OptionValue to be used for whatever: {{field.itemsel}} 
</p>

请检查我创建的这个jsfiddle 。

此外,我将使用ng-options(如Angular 选择输入文档中的建议)重写您的代码:

<select name="{{field.attributeName}}" 
  ng-options="index as item for (index, item) in field.optionName" 
  ng-init="indexselected='1'"
  ng-model="indexselected">
</select>
<p>Selected index: {{indexselected}}</p>
<p>Option Value: {{field.optionValue[indexselected]}}</p>

检查我创建的另一个jsfiddle 。如果您的疑问不同,请更清楚地指出。

于 2016-08-02T13:09:31.540 回答