在 Angular 中使用两个数组时在选择框中标记默认值
Marking default value in Selectbox while using two array in Angular
我使用从外部源获取的对象构建了一个控件。
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中使用以上两个数组时在选择框中标记默认值,
如何实现?
如果我没记错的话,你想在 select 输入中设置一个默认值。
坚持你的代码,我设置了一个 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 input documentation 中所建议):
<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。
如果您的疑惑不一样,请指出得更清楚。
我使用从外部源获取的对象构建了一个控件。
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中使用以上两个数组时在选择框中标记默认值, 如何实现?
如果我没记错的话,你想在 select 输入中设置一个默认值。
坚持你的代码,我设置了一个 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 input documentation 中所建议):
<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。 如果您的疑惑不一样,请指出得更清楚。