为什么在使用ng-options时只有第一个选项出现在select中?

时间:2014-07-24 20:30:26

标签: angularjs pug

如果我有一个使用ng-repeat填充的选择,并且我在选择下方选择两个选项,则只显示第一个选项。这是为什么?

示例:

<select id="dropDownSelect", ng-model="chosenDash.id", ng-options="dashboard._id as formalTitle(dashboard) for dashboard in dashboards">
  <option value="">This will show up</option>
  <option value="">This will not</option>
</select>

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

Angular仅支持一个空(null)选项。

请参阅此处第229-235行 - https://github.com/angular/angular.js/blob/master/src/ng/directive/select.js

  // find "null" option
  for(var i = 0, children = element.children(), ii = children.length; i < ii; i++) {
    if (children[i].value === '') {
      emptyOption = nullOption = children.eq(i);
      break;
    }
  }

一旦找到具有空值属性的子元素,它就会将其设置为空选项并停止查找。然后生成选项(包括一个空选项)并替换其中的任何选项。您的第二个空选项将被忽略。