Angularjs选择没有选择

时间:2015-01-06 22:09:20

标签: javascript angularjs select selectedindex angularjs-ng-options

这似乎是我正在寻找的一件非常简单的事情,而且我无法在SO或其他任何地方找到任何东西这一事实让我觉得我必须错过一些非常明显的东西,但到目前为止,我很难过。我的问题是;有什么办法,当使用设置了ng-options的选择框时,将列表设置为无选择(即selectedIndex = -1)?我有一个选择框设置为非下拉列表,我希望能够显示未选择任何内容的列表。

我正在添加我在下面使用的代码,但我相信这是非常标准的东西。 curSearchResults数组从服务器填充。因为它工作正常,所以我不在此处。我已经尝试将selSearchRslt设置为null并在获取列表后返回到新的searchRslt(),但两者都在列表顶部留下一个空白选项。我习惯于将选择框设置为不需要的选择非常简单......

在控制器上:

function searchRslt() {
    this.RsltId = '';
    this.RsltName = '';
}
$scope.curSearchRslts = [];
$scope.selSearchRslt = new searchRslt();
标记中的

<select class="listPanel" 
   ng-model="selSearchRslt" 
   ng-options="rslt as rslt.RsltName for rslt in curSearchRslts" 
   ng-change="loadSearchRslt()"
   size="40" style="height: 300px; width: 480px">
</select>

这是对以下评论的回应:

我阅读了你提到的问题,我确实看到了文档中关于将选项添加到标记的内容,但这并没有给出与将所选索引设置为-1相同的结果。而是在我的列表中添加一个未使用的选项。特别是当列表没有显示为下拉列表时,我发现这个解决方案在UI方面非常笨重。我不想要那个额外的选择。我只想要我实际要使用的选项,但没有选择。如果答案是我不能那样做,那很好,但是添加一个未使用的选项肯定不是将selectedIndex设置为-1。

此外,我不是在寻找一种设置默认选项的方法,我正在寻找一种没有选择选项的方法。我不知道这被视为同样的事情。我发现设置默认选择非常容易。我永远不会发布有关此问题的问题。我没有找到任何提供无选择方法的东西。如果我在这里遗漏了一些东西而已经完全死了脑筋,请接受我的道歉,但我不知道这个问题是如何以任何方式回答这个问题的。

1 个答案:

答案 0 :(得分:0)

您可以这样做来创建一个空选项:

<select class="listPanel" 
   ng-model="selSearchRslt" 
   ng-options="rslt as rslt.RsltName for rslt in curSearchRslts" 
   ng-change="loadSearchRslt()"
   size="40" style="height: 300px; width: 480px">
  <option value="">-- Please Select --<option>
</select>