如何在 ng-options AngularJS 中设置默认值

how to set a default value in ng-options AngularJS

我想使用 angular ng-options 为我的 select 组件设置默认值 我看过关于这个问题的其他主题,但我尝试在我的案例中使用它但没有解决.. 所以我有一个 select 组件

<select ng-options="dis.entidade.idEntidade as dis.entidade.nome for dis in distritos" ng-model="distrito.entidade.idEntidade" class="form-control">
    <option></option>   
</select>

我想设置一个默认值。

在您的控制器中,您可以设置 $scope.distrito.entidade.idEntidade = "defaultValue"。你的 ng-model 是选定的值,所以如果你不在你的控制器中初始化它,该值将是未定义的。 如果您在初始化时为相关模型设置了一个值,这将是默认选择的值。

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.somethingList = [];
  $scope.somethingList.push("Something1");
  $scope.somethingList.push("Something2");
  $scope.somethingList.push("Something3");
  
  $scope.selectedSomething = $scope.somethingList[0];
});
<!DOCTYPE html>
<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
</head>

<body>
  <div ng-app="myApp" ng-controller="myCtrl">
    <select ng-options="something for something in somethingList" ng-model="selectedSomething"></select>
  </div>
</body>

</html>

您可以在no-model属性处设置。示例:

$scope.distrito.entidade.idEntidade = $scope.distritos[0].entidade.idEntidade;

angular.module('app', []).controller('select', function($scope) {
  $scope.distrito = {};
  $scope.distrito.entidade = {};

  $scope.distritos = [{
    entidade: {
      nome: 'test1',
      idEntidade: 1
    }
  }, {
    entidade: {
      nome: 'test2',
      idEntidade: 2
    }
  }];

  $scope.distrito.entidade.idEntidade = $scope.distritos[0].entidade.idEntidade;
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="select">
  <select ng-options="dis.entidade.idEntidade as dis.entidade.nome for dis in distritos" ng-model="distrito.entidade.idEntidade" class="form-control">
 
   </select>
</div>

<select ng-options="dis.entidade.idEntidade as dis.entidade.nome for dis in distritos" ng-model="distrito.entidade.idEntidade" class="form-control">
<option>THIS IS YOUR DEFAULT VALUE</option>   

如果你想要一个具有某种含义的默认值,你应该在你的控制器中进行,例如:

if (!$scope.distrito.entidade.idEntidade)
  $scope.distrito.entidade.idEntidade = 'Some default value';