ng-repeat不使用set数据结构

时间:2015-07-08 21:23:52

标签: angularjs set angularjs-ng-repeat ng-repeat

我正在尝试将ng-repeat与javascript https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Set中的Set字段一起使用。我尝试使用set with ng-repat中的values(),keys(),entries()方法,但是没有用,有人知道方法,黑客攻击这项工作吗?

恢复代码:

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()和print domains属性,它打印,我认为这个问题只有ng-repeat。

3 个答案:

答案 0 :(得分:2)

ES6选项 -

return [...domains];

答案 1 :(得分:1)

我使用了这个解决方案

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>

答案 2 :(得分:0)

这可能不是最好的解决方案,但你可以让它像这样工作:

查看:

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

控制器:

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

    return arr;
};