我有vm.s = new Set([1,2,3])
如何在ngRepeat
上使用s
而不将其转换为数组?
我试过了
<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>
答案 0 :(得分:4)
Set()是EMCAScript 6的一项功能。 Angular 1.x不直接以这种方式支持ES6功能。 Array.from(vm.s)
应该适合你。
答案 1 :(得分:0)
您必须使用以下命令在控制器上将Set转换为数组:
Array.from(vm.s.values())
答案 2 :(得分:0)
试试这个,它的工作原理,你必须使用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>