首页 > 解决方案 > Angularjs 版本问题:默认选择禁用选项

问题描述

为什么在 angularjs 1.4.x 中,默认选择禁用选项不起作用,但在 angularjs 1.5.x 中运行良好?

例如,以下代码适用于 angularjs 1.5.5(默认选择白色,它是disabled):

<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Example - example-select-production</title>


  <script src="//code.angularjs.org/1.5.5/angular.min.js"></script>



</head>
<body ng-app="selectExample">
  <script>
angular.module('selectExample', [])
  .controller('ExampleController', ['$scope', function($scope) {

    $scope.myColor = {name:'white', shade:'light'}; // red
    $scope.colors = [
      {name:'black', shade:'dark'},
      {name:'white', shade:'light', notAnOption: true},
      {name:'red', shade:'dark'},
      {name:'blue', shade:'dark', notAnOption: true},
      {name:'yellow', shade:'light'}
    ];
  }]);
</script>
<div ng-controller="ExampleController">


  <label>Color filtered by shade, with some disabled:
    <select ng-model="myColor.name" validate-on="dirty" required-message="'This field is required'" ng-disabled="false" ng-required = "true"
          ng-options="color.name as color.name group by color.shade disable when color.notAnOption for color in colors | filter:{'shade':'light'}:true">
    </select>
  </label><br/>




  <hr/>
  Currently selected: {{ {selected_color:myColor} }}
  <div style="border:solid 1px black; height:20px"
       ng-style="{'background-color':myColor.name}">
  </div>
</div>
</body>
</html>

但是将版本更改为,例如script上例中标签中的 1.4.7,默认情况下不会选择白色查看此 plunkr:https ://plnkr.co/edit/UAOFj5MEow3xEWH0ZLyz?p=preview

如何获得在 1.5.x 中正常工作的 1.4.x 中的行为?

标签: angularjsangularjs-directiveversionng-options

解决方案


推荐阅读