Пометка значения по умолчанию в Selectbox при использовании двух массивов в Angular

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 - это массив, и элемент будет отображаемым значением. field.optionValue [$ index] - это другой массив, отображаемый для значений.

Маркировка значения по умолчанию в Selectbox при использовании выше двух массивов в Angular, как это можно сделать?

  • 0
    Ваш вопрос не ясен. Пожалуйста, уточните это. Также вы закрываете <select> в неправильном месте ...
  • 0
    @ developer033, не могли бы вы взглянуть сейчас. Отредактировал мой вопрос. Заранее спасибо.
Теги:
drop-down-menu
angularjs-select

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 (как это предлагается в документации для ввода углового выбора):

<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, который я создал. Если ваше сомнение было иным, пожалуйста, укажите его более четко.

  • 0
    Бинго !! Спасибо @mtb Я сделал несколько изменений в вашем коде, чтобы удовлетворить мои требования. Но твой код в ключ, чтобы привести меня туда .. :)
  • 0
    Я сделал небольшое изменение, такое как "ng-options = 'field.optionValue [index] as item ..." и ng-init = "formControlsValues [field.dbColumnName] = field.initialValue" и ng-model = "formControlsValues [field .dbColumnName] "в элементе управления, который будет собирать измененное значение в элементе управления.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню