javascript - AngularJS ng-options 在选择选项后删除了默认空白值

标签 javascript angularjs

我正在使用 ng-options 作为我的选择标签,以便为用户提供选择。一切正常,但第一次选择选项后,默认空白值消失了。如果我想再次恢复为默认空白值怎么办?那怎么办呢?如何保留该空白值?

这是我的代码示例:

<!DOCTYPE html>
<html ng-app="app">

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
  </head>

  <body ng-controller="myController">
    <h1>Hello World!</h1>
    <select ng-model="mySelection" name="" id="" ng-options="x.value as x.label for x in myOptions">

    </select>
  </body>

</html>

<script>
  var app = angular.module('app', []);
  app.controller('myController', function($scope){
    $scope.myOptions = [{
      "value": null,
      "label": null,
    },{
      "value": "First",
      "label": "First",
    },{
      "value": "Second",
      "label": "Second",
    },{
      "value": "Third",
      "label": "Third",
    }]
  });
</script>

这是骗子:http://plnkr.co/edit/5f17YxRfWFI4g40t3NEf?p=preview

最佳答案

使用

<select ng-model="mySelection" name="" id="" ng-options="x.value as x.label for x in myOptions">
    <option value=""></option>
  </select>

不要用虚拟 null 对象污染您的“myOptions”,因为 API 不会返回相同的结果。您需要在表示层上处理它,如上所示。保存时,如果use选择empty,则会保存为null(如果处理得当)

你也可以有这样的东西

<option value="">---select---</option>

关于javascript - AngularJS ng-options 在选择选项后删除了默认空白值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253079/

相关文章:

javascript - for循环没有正确执行http服务

angularjs - 如何从剪贴板复制粘贴 URL 并使用 AngularJS Protractor 导航到它

javascript - 带有粘性标题的可滚动 Div

javascript - 如何在 PugJS 的路由器中触发 onclick 功能?

javascript - 在javascript中打开本地文件系统中的文件

javascript - : show or hide element after button click 的 Angular 方式

javascript - 如果什么都没有,则在 angularJs 消息中未定义

javascript - Facebook 共享对话取消按钮不会关闭窗口

javascript - 为什么 redux-sessionstorage 在恢复状态时不更新节点的属性?

javascript - 调用服务返回未定义