根据数组中的现有值动态更改下拉列表 select 默认值

Dynamically change dropdown select defaults depending on existing values in array

我是 Web 开发的新手,AngularJS 我一直在努力解决这个问题。抱歉英语不好。

我使用 ng-repeat 创建我需要的正确数量的下拉菜单,因为这需要是动态的。下拉菜单的标签如下:

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

我有一个 returns 数组的 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'
    }
  ];

如果您想为所有下拉菜单设置不同的值,则不能共享模型。 ng-model 对于所有下拉列表应该不同,这可以通过如下所示的下拉列表数组来实现。

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

请参阅 运行 中的示例 http://plnkr.co/edit/jsAn1jwGkQfxXK5I9G6J?p=preview