如何对逗号分隔的字符串进行ng-repeat

时间:2016-03-11 18:13:02

标签: javascript angularjs-scope angularjs-ng-repeat ng-repeat

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

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;
};

但是,如何对新数组进行重复?

2 个答案:

答案 0 :(得分:1)

在暴露于您的视图之前简单地爆炸该字符串:

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

答案 1 :(得分:0)

您应该使用过滤器来表示&#34;数组&#34;。

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/

中的完整示例 希望这会有所帮助。 此致