0

这似乎是我正在寻找的一件非常简单的事情,而我在 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 不同。

此外,我不是在寻找设置默认选项的方法,而是在寻找不选择任何选项的方法。我不明白这如何被视为同一件事。我发现设置默认选择非常容易。我永远不会发布有关此的问题。我还没有找到任何提供没有选择的方法。如果我在这里遗漏了一些东西并且已经完全脑死亡,请接受我的道歉,但我看不出所提到的问题是如何回答这个问题的。

4

1 回答 1

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>
于 2015-01-06T22:14:13.817 回答