javascript - ng-options默认值需要双击选择一个值

标签 javascript angularjs sql-server

我使用 ng-options 创建了一个选择框,它从数据库中获取预先选择的值。

我的 HTML:

<h3>Process:</h3>
<select class="form-control" 
        ng-options="p.procid as p.procname for p in processes track by p.procid" 
        ng-model="processSelected">
  <option value="">-- choose an option --</option>
</select>

我的 Controller :

$scope.processSelected = $scope.processes[2];

现在,它在选择框中显示为 MyProcess1MyProcess2MyProcess3 等。例如,如果默认值为 MyProcess3,并且我想选择 MyProcess1 进程,则选择框将变为空白。当我第二次单击 MyProcess1 时,它会选择它。我没有找到任何双击的原因。

请告诉我如何让它通过单击进行选择。

最佳答案

我相信您对 ng-options 的查询过于复杂化。首先track by p.procid用于ng-repeat删除重复项,其中 <select>不在乎。其次,你的p.procid as p.procname打破了逻辑,因为它没有多大意义。

总的来说,您的代码应更改为 ng-options="p.procname for p in processes"

这是一个工作演示(没有后端请求):

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.processes = [{
      "procid": 1,
      "procname": "AAA"
    },
    {
      "procid": 3,
      "procname": "BBB"
    },
    {
      "procid": 4,
      "procname": "CCC"
    },
    {
      "procid": 2,
      "procname": "DDD"
    },
  ];
  $scope.processSelected = $scope.processes[2];
});
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<body>

  <div ng-app="myApp" ng-controller="myCtrl">

    <h3>Process:</h3>
    <select class="form-control" ng-options="p.procname for p in processes" ng-model="processSelected">
      <option value="">-- choose an option --</option>
    </select>
    <p ng-show="processSelected">Selected: {{processSelected}}</p>

  </div>

</body>

</html>

关于javascript - ng-options默认值需要双击选择一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50720671/

相关文章:

javascript - DataTables 不会为按钮创建新行

javascript - 使用指令的范围而不是 Controller 的范围

javascript - Json按2个字段格式化

sql - 如何在日期和时间作为整数单独存储的情况下执行 SQL BETWEEN

c# - 将 CSV 加载到 SQL Server 错误

javascript - 通过 'new' 检查 ClojureScript REPL 中构造的 JavaScript 对象

javascript - jQuery.ParseJSON 返回一个字符串

SQL Server - 选择一天中的每一秒

javascript - Chart.js - y 轴自定义标签

angularjs - 追踪无限摘要错误