我知道在VueJS中我可以遍历一个数组:
<span v-for="(element, index) in list">{{ element }}</span>
Run Code Online (Sandbox Code Playgroud)
但是如果我想要一个以逗号分隔的列表呢?例如,如果list = ["alice", "bob", "chuck"]
,那么上面会输出:
<span>alice</span><span>bob</span><span>chuck</span>
Run Code Online (Sandbox Code Playgroud)
但我想要的是:
<span>alice</span>, <span>bob</span>, <span>chuck</span>
Run Code Online (Sandbox Code Playgroud)
这可能吗?
Ren*_*oth 25
如果您关心的只是逗号分隔,请使用Javascript的内置连接方法:
{{ list.join(', ') }}
Run Code Online (Sandbox Code Playgroud)
Sau*_*abh 24
您可以使用条件渲染来隐藏最后一个,
如下:
var demo = new Vue({
el: '#demo',
data: function() {
return {
lists: ['Vue', 'Angular', 'React']
};
}
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://vuejs.org/js/vue.min.js"></script>
<div id="demo">
<span v-for="(list, index) in lists">
<span>{{list}}</span><span v-if="index+1 < lists.length">, </span>
</span>
</div>
Run Code Online (Sandbox Code Playgroud)
Ben*_*Ben 13
我最终做的是:
<span v-for="element in list" class="item">
<span>{{ element }}</span>
</span>
Run Code Online (Sandbox Code Playgroud)
在CSS中:
.item + .item:before {
content: ", ";
}
Run Code Online (Sandbox Code Playgroud)
您可以使用v-if
在第一个参数上带有条件的属性来做到这一点,避免使用.length
:
var app = new Vue({
el: '#app',
data: {
list: ['john', 'fred', 'harry']
}
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://vuejs.org/js/vue.min.js"></script><div id="app">
<span v-for="(element, index) in list">
<span v-if="index != 0">, </span><span>{{ element }}</span>
</span>
</div>
Run Code Online (Sandbox Code Playgroud)
小智 8
解决方案使用"模板"
<template v-for="(element, index) in list">
<span>{{element}}</span><template v-if="index + 1 < list.length">, </template>
</template>
Run Code Online (Sandbox Code Playgroud)
小智 8
最好使用这样的内置JS Array.join
方法
<span>{{ list.join(', ') }}</span>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19032 次 |
最近记录: |