在 AngularJS 中从 Controller 将 ng-option 重置为默认值

Reseting ng-option to default value from the Controller in AngularJS

我的应用程序中有以下 select:

<select ng-model="diagnose" ng-options="c as c.Name for c in diseases | orderBy:['Name']">
  <option value="">Diagnose*</option>
</select>

将数据发送到服务器后,我重置了整个表单,但是 select 转到空选项而不是显示空 value/hardcoded 选项。

我试过以下选项:

$promisedb.then(function (data) {
  $scope.diagnose = [1];
});

并且:

$promisedb.then(function (data) {
  $scope.diagnose = [0];
});

并且:

$promisedb.then(function (data) {
  $scope.diagnose = '';
});

但到目前为止运气不好。

我错过了什么?

我相信您可以使用 delete 命令将 select 重置为默认选项,如下所示:

delete $scope.diagnose;

演示:

angular.module('MyApp', []).controller('MyCtrl', function MyCtrl($scope) {
  $scope.diseases = [
    'Disease 1',
    'Disease 2',
    'Other diseases...'
  ];
  $scope.reset = function () {
    delete $scope.diagnose;
  };
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.8/angular.min.js"></script>
<body ng-app="MyApp">
  <div ng-controller="MyCtrl">
    <select ng-model="diagnose" ng-options="d for d in diseases">
      <option value="">Diagnose*</option>
    </select>
    <button ng-click="reset()">Reset</button>
  </div>
</body>