【问题标题】:Angularjs select with no selection [duplicate]Angularjs选择没有选择[重复]
【发布时间】:2015-03-04 16:13:46
【问题描述】:

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

这是对以下cmets的回应:

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

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

【问题讨论】:

  • 你看这个问题了吗。 stackoverflow.com/questions/18194255/… 还有很多其他的。您需要做的就是在选择中添加一个选项
  • Angular 文档docs.angularjs.org/api/ng/directive/select 中明确回答了这个问题。请参阅在
  • 我的问题似乎被踢到了路边,因为它被标记为重复,这很遗憾,因为没有人回复我的编辑说明为什么我认为这是错误的。我得出的结论是,您不能将 ng-options 绑定选择列表设置为无选择,我认为这是 Angularjs 中的一个缺失(否则我很喜欢)。就我而言,添加空白(或--请选择--)选项是一种解决方案,但实际上并不能解决问题。也许需要一个 ng-noSelection 指令或类似的东西。

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


【解决方案1】:

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

<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-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2015-07-19
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多