ng-repeat 不适用于集合数据结构

ng-repeat not working with set data structure

我正在尝试将 ng-repeat 与 javascript https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Set 中的 Set 字段一起使用。我尝试将 Set 中的 values()、keys()、entries() 方法与 ng-repat 一起使用,但没有用,有人知道办法吗?

恢复代码:

function Campaign () {
  this.site = {
    type : '',
    domains : new Set()
  };
}

控制器:

.controller('CampaignStep1Ctrl', ['$scope', 'languages', 'geoLocationService',
        function ($scope, languages, geoLocationService) {
        var vm = this;
        vm.campaign = $scope.campaign;
 }

html:

<tr class="ui-widget-content ui-datatable-empty-message" ng-repeat="domain in vm.campaign.site.domains">
  <td colspan="2">{{domain}}</td>
</tr>

注意:如果我使用 console.log() 并打印域属性,它会打印出来,我认为问题仅出在 ng-repeat 上。

这可能不是最好的解决方案,但您可以这样工作:

查看:

<p ng-repeat="value in getSetAsArr(set)">{{ value }}</p>

控制器:

$scope.getSetAsArr = function (set) {
    var arr = [];
    set.forEach(function (value) {
        arr.push(value);
    });

    return arr;
};

一个 ES6 选项 -

return [...domains];

我使用了这个解决方案

var devSet = new Set();
devSet.add(""One);
devSet.add(""Two);
...
$scope.deviceTypes = Arrays.from(devSet);

并且在html

  <ul>
    <li ng-repeat="type in deviceTypes">
      <p>{{type}}</p>
    </li>
  </ul>