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

时间:2019-05-22 23:07:19

标签: javascript html angularjs drop-down-menu angularjs-select

我是Web开发和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 :(得分:0)

如果要为所有下拉菜单使用不同的值,则不能共享模型。 所有下拉菜单的 ng-model 应该不同,这可以通过以下所示的下拉列表阵列来实现。

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

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