如何使ng选择's选项列表用当前的“;选择“;属性

How to make ng-select's list of options render with the current "selected" attribute

本文关键字:选择 属性 列表 ng 何使 选项      更新时间:2023-09-26

文档中有一个使用ng-select的示例,包含在下面的代码段中。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script>
angular.module('selectExample', [])
  .controller('ExampleController', ['$scope', function($scope) {
    $scope.colors = [
      {name:'black', shade:'dark'},
      {name:'white', shade:'light'},
      {name:'red', shade:'dark'},
      {name:'blue', shade:'dark'},
      {name:'yellow', shade:'light'}
    ];
    $scope.myColor = $scope.colors[2]; // red
  }]);
</script>
<div ng-app="selectExample" ng-controller="ExampleController">
  <select ng-model="myColor" ng-options="color.name for color in colors"></select>
  <p>Selected: {{myColor}}</p>
</div>

但是,当您选择与默认颜色(红色)不同的颜色时,HTML仍然使用呈现

<option value="2" selected="selected">red</option>

这错了吗?如果是,我该如何修复?

我认为这并没有造成错误。

来自MDN:

选择

如果存在,此布尔属性指示选项最初选择。如果元素是的后代未设置多个属性、仅设置一个属性的元素可以具有所选择的属性。

来自HTML5规范:

所选属性是布尔属性。它表示元素的默认可选性。

两者都表示selected表示<option>元素的默认/初始状态,而不是其当前状态。