列表分隔符角度表达式

时间:2015-05-20 02:23:45

标签: javascript json angularjs

是否有一个逗号分隔下面结构中的JSON返回值,以便我的结果为blues, brews, barbecue, festival, music

我的JSON输出:

"tags": "blues brews barbecue festival music"

使用{{item.tag}} {{$last ? '' : ', '}}对具有以下JSON结构的ng-repeat指令非常有效。但是,我的JSON格式不是这样的。

[{"tag":"blues"},{"tag":"brews"},{"tag":"barbecue"},{"tag":"festival"},{"tag":"music"}]

2 个答案:

答案 0 :(得分:0)

使用String.split()将字符串转换为数组:

var arr = "blues brews barbecue festival music".split(" ")
//produces ["blues", "brew", "barbecue", "festival", "music"]
"tags": arr.map(function(el) {
    return {
        name: el,
        href: myHref
    }
})
//produces [{name: "blues", href: ""}...]

只需在json对象加载后执行此代码。

然后您可以将其与ng-repeat

一起使用
<ul ng-repeat={{tags}}>
    <li>{{tag}}</li>
</ul>

答案 1 :(得分:0)

您可以使用map

在阵列上使用split

var data = {"tags": "blues brews barbecue festival music"};
var tags = data.tags.split(' ').map(function(tag) {
  return {tag: tag};
});

document.write(JSON.stringify(tags, null, 2));

但如果您只是显示一个字符串,请不要使用重复,只需加入拆分:

var data = {"tags": "blues brews barbecue festival music"};
var tags = data.tags.split(' ').join(", ");

document.write(tags);