在 Set 上使用 ngrepeat

Use ngrepeat on Set

我有一个vm.s = new Set([1,2,3])

如何在 s 上使用 ngRepeat 而不将其转换为数组?

我试过了

<option ng-repeat="o in vm.s">{{o}}</option>
<option ng-repeat="o in vm.s.values()">{{o}}</option>
<option ng-repeat="o in Array.from(vm.s)">{{o}}</option>

您必须使用以下方法在控制器中将 Set 转换为数组:

 Array.from(vm.s.values())

试试这个,它的工作原理,您必须使用 vm.arr = Array.from(vm.s);

将集合转换为数组

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  var vm = this;
  vm.arr = [];
  vm.s = new Set([1,2,3]);
   vm.arr = Array.from(vm.s);
  console.log(vm.arr);
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>


  <body ng-app="plunker" ng-controller="MainCtrl as main">
   <ul>
    <li ng-repeat="o in main.arr">{{o}}</li>
     </ul>
  </body>

Set() 是 EMCAScript 6 的一项功能。 Angular 1.x 不以这种方式直接支持 ES6 特性。 Array.from(vm.s) 应该适合你。