Динамически изменять выпадающий список по умолчанию в зависимости от существующих значений в массиве - PullRequest
0 голосов
/ 23 мая 2019

Я новичок в веб-разработке и AngularJS, и я боролся с тем, как это сделать. Извините за плохой английский.

Я использую ng-repeat, который создает правильное количество выпадающих списков, которые мне нужны, так как они должны быть динамическими. В выпадающих списках есть метка:

Test1: <dropdown here>
Test2: <dropdown here> ...etc.

У меня есть HTTP-запрос, который возвращает массив. Если в массиве есть «Test1 State1», я бы хотел, чтобы раскрывающийся список Test1: по умолчанию менялся на State1. (продолжает все тесты)

Как мне это сделать?

HTML

<div ng-repeat="o in options track by $index">
    <label for="{{::$o}}" class="col-xs-3">{{o}}:</label>
    <select id="{{::$o}}" ng-model="stateModel"
            ng-options="state.changeToState for state in states"
            ng-change="onStateSelect(stateModel.platformReleaseNotes, o)"> 
      {{state}}
    </select>
</div>
$scope.states = [
    {
      changeToState: 'State1',
      notes: 'Hello World'
    },
    {
      changeToState: 'State2',
      notes: 'Goodbye'
    },
    {
      changeToState: 'State3',
      notes: ' is State3'
    },
    {
      changeToState: 'State4',
      notes: ' is State4'
    }
  ];

1 Ответ

0 голосов
/ 27 мая 2019

Вы не можете поделиться моделью, если хотите иметь разные значения для всех раскрывающихся списков. ng-модель должна отличаться для всех выпадающих списков, и это может быть достигнуто с помощью массива раскрывающихся списков, как показано ниже.

  $scope.dropDowns = [{
    dropDownName: 'Test1:',
    id: 'test1',
    selectedOption: ''
  }, {
    dropDownName: 'Test2:',
    id: 'test2',
    selectedOption: ''
  }];

см. Рабочий пример в http://plnkr.co/edit/jsAn1jwGkQfxXK5I9G6J?p=preview

...