如何 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(', ');
我有一个如下所示的数组;
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(', ');