如何 ng-repeat 以逗号分隔的字符串

How to ng-repeat over a comma seperated string

我有一个如下所示的数组;

var myObj = {
    paramA1: "some value",
    paramA2: "a=1, set=2, of=332, comma=21, sep=12, values=01132"
}

$scope.myObj = myObj;

我想在我的 HTML 中将以上内容显示为:

paramA1: some value
paramA2: a=1
         set=2
         of=332
         comma=21
         sep=12
         values=01132

但是,我遇到的问题是 paramA2 的内容是一个字符串。

所以我试过了:

<div ng-repeat="(key, value) in myObj track by $index">
            <strong>{{key}}:</strong>
            <ul>
                <li>
                    {{value}}
                </li>
            </ul>
</div>

这给了我:

paramA1: some value
paramA2: a=1, set=2, of=332, comma=21, sep=12, values=01132

所以我尝试在第二次重复中添加一个函数以将 paramA2 转换为数组:

<div ng-repeat="(key, value) in myObj track by $index">
            <strong>{{key}}:</strong>
            <ul>
                <li ng-repeat="myItem in getMyItems(value)">
                    {{value}}
                </li>
            </ul>
</div>

$scope.getMyItems = function(item) {
      var array = item.split(',');
      return array;
};

但是我如何在新数组上重复?

您应该制作一个过滤器来表示 "array"。

angular.module('myApp').controller('MyCtrl',['$scope', 'fooFilter', MyCtrl]);
function fooFilter() {
  return function(input) {

        return input.split(',');
  };
}



<div ng-repeat="(key, value) in myObj">
            <strong>{{key}}:</strong>
            <ul>
                <li ng-repeat="paramA2Item in value | foo">
                    {{ paramA2Item }}
                </li>
            </ul>
</div>

请参阅 http://jsfiddle.net/s2doyrq4/

中的完整示例

希望这对您有所帮助。 问候

在显示给您的视图之前简单地分解该字符串:

$scope.iterable = myObj.paramA2.split(', ');