Я создаю элемент управления, используя объект, который я получаю из внешнего источника.
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 - это массив, и элемент будет отображаемым значением. field.optionValue [$ index] - это другой массив, отображаемый для значений.
Маркировка значения по умолчанию в Selectbox при использовании выше двух массивов в Angular, как это можно сделать?
Если я правильно понял, вы хотите установить значение по умолчанию на входе выбора. Придерживаясь кода, я устанавливаю значение 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
(как это предлагается в документации для ввода углового выбора):
<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, который я создал. Если ваше сомнение было иным, пожалуйста, укажите его более четко.
<select>
в неправильном месте ...