选择元素动态生成ng-repeat

时间:2016-09-09 19:31:20

标签: angularjs drop-down-menu ng-repeat

我试图根据数组动态生成选择元素:

[
  ["Air travel program","Yes",[["--"],["Yes"],["No"]]],
  ["Car rental program","--",[["--"],["Yes"],["No"]]],
  ["Data management","--",[["--"],["Yes"],["No"]]],
  ["Group travel","--",[["--"],["Yes"],["No"]]],
  ["Hotel Program","--",[["--"],["Yes"],["No"]]],
  ["Payment systems","--",[["--"],["Yes"],["No"]]],
  ["Transient travel","--",[["--"],["Yes"],["No"]]],
  ["Travel policy","No",[["--"],["Yes"],["No"]]]
]

我的HTML:

<div class="profileRow"  ng-repeat="btpPDropdown in BTPProfileSelectList">
                    <label class="profileLabel">
                                            {{btpPDropdown[0]}}
                    </label>
                    <select name="{{btpPDropdown[0]}}" >
                                            <option ng-repeat="btpOption in btpPDropdown[2]">{{btpOption[0]}}</option>
                    </select>

这会按预期生成选择元素和选项,但我无法弄清楚如何设置默认选定选项,应该是{{btpPDropdown [1]}},或者在第一个选择中是。 据我了解,select会将所选选项设置为匹配的选项字符串。我尝试设置ng-model =&#34; {{btpPDropdown [1]}}&#34;但这是无效的,因为它不是唯一的。 任何有助于此工作的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您所拥有的问题是您没有将选择绑定到模型。在select本身上提供模型允许您将其绑定到数组。这样,当更改下拉列表时,它将反映在实际数组中。

以下修改后的代码:

<div class="profileRow"  ng-repeat="btpPDropdown in BTPProfileSelectList">
    <label class="profileLabel">
      {{btpPDropdown[0]}}
    </label>
    <select name="{{btpPDropdown[0]}}" ng-model="btpPDropdown[1]">
      <option ng-repeat="btpOption in btpPDropdown[2]" >{{btpOption[0]}}</option>
    </select>
</div>