javascript - 如何防止Angular1.0选择(下拉)多余的空格?

标签 javascript angularjs select

我正在开发 AngularJS 1.0 应用程序,并面临 Angular Select 的问题。

只需复制虚拟代码:

<select ng-model ="data.state" ng-options="data.states">

选择

在这里,它列出了一个国家/地区的州,并将默认数据作为 ng-model 传递。

如果默认值与数据源不匹配,我需要显示文本“选择”。

但它没有按预期工作,并且显示了额外的空白空间而不是选择。

谢谢

最佳答案

“如果默认值与数据源不匹配,我需要显示文本“选择”。”在这种情况下,您的 data.state可能为空(即“”)情况。您可能期待这样的逻辑:

<label>States : </label>
  <select ng-model ="data.state" ng-options="data for data in data.states" >
    <option value="" selected hidden >SELECT</option> 
    <!--Removes the Empty space and shows "SELECT" as pre-populated by default in the drop-down. -->
  </select>
<br>Selected State : {{data.state}} 

空白区域显示为 Angular 提供的占位符,用于保存类似 "Select an option" 的文本。或"Choose a best answer" 。您可以使用 <option value="" selected hidden >Select</option> 覆盖它它不会出现在选定的下拉选项列表中,因为它是 hidden .

如果您希望选择显示为一个选项,供用户按顺序选择(如果该字段可以保留为空并且不是强制性的),您可以使用以下代码:

 <option value="" selected >SELECT</option> 

在 Controller 中期望数据为:

 // $scope.data.state = something that is returned from some API response
 $scope.data = {
  states: [
    "Kerala",
    "Karnataka",
    "Andhra",
    "Haryana"
  ]
}

查看 JS Fiddle here用于工作样本。

关于javascript - 如何防止Angular1.0选择(下拉)多余的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50733387/

相关文章:

javascript - 如何在 RequireJS 模块中进行异步初始化

angularjs - Controller 被启动两次

mysql - 选择与建议的唯一索引冲突的 MySQL 记录

mysql - 最新Group By MYSQL+链接表

select - sqlite3 从多个表中选择 'where' 东西

javascript - 将全局函数包装在 (function($){ }(jQuery) 中

javascript - 通过套接字 io 的实时音频流。 alsa关机,如何解决?

javascript - 为什么我无法使用 Flow 在 JavaScript React 中比较 bool 值?

node.js - Express 应用中的 XSS 保护

javascript - 如果选中所有复选框,则启用提交按钮