在 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)
应该适合你。
我有一个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)
应该适合你。