如果我有以下数据属性:
person: {name: 'Joe', age: 35, department: 'IT'}
Run Code Online (Sandbox Code Playgroud)
并希望循环并输出如下:
name: Joe, age: 35, department: IT
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有:
<span v-for="(val, key) in person">{{key}}: {{val}}, </span>
Run Code Online (Sandbox Code Playgroud)
但是这显示:
name: Joe, age: 35, department: IT,
Run Code Online (Sandbox Code Playgroud)
最后用一个额外的逗号,我怎么能检测到它是最后一个道具并且不显示逗号?我虽然v-show或v-if可能是解决方案,但无法弄清楚如何使其工作.
Dra*_*ill 36
您还可以通过在每个项目前插入逗号来“作弊”,因为检查第一项 ( key !== 0) 会更容易。
<span v-for="(val, key) in person">
<span v-if="key !== 0">, </span>
{{key}}: {{val}}
</span>
Run Code Online (Sandbox Code Playgroud)
Ber*_*ert 24
这是一种方式.
<span v-for="(val,key,index) of person">key: {{key}}, val: {{val}}<span v-if="index != Object.keys(person).length - 1">, </span></span>
Run Code Online (Sandbox Code Playgroud)
小智 15
很棒的作品
<div id="app">
<div v-for="(item, index) in items">
<div v-if="index == items.length - 1">yes</div>
{{ item }}, {{ index }}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
cra*_*g_h 12
您可以使用a computed来查看当前索引(第三个参数v-if)是否是最后一个属性:
computed: {
last(){
return Object.keys(this.person).length-1;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在你的v-for:
<span v-for="(val, key, index) in person">{{key}}: {{val}}<span v-if="index !== last">, </span> </span>
Run Code Online (Sandbox Code Playgroud)
这是JSFiddle:https://jsfiddle.net/wv2ujxvn/
这也有效。
<span v-for="(value,key) in persons" :key='key'>
{{key}}: {{val}}
<span v-if="key+1 != persons.length">, </span>
</span>
Run Code Online (Sandbox Code Playgroud)
遗憾的是Vue没有提供快捷方式。
我个人更喜欢使用小型 CSS:
<div class="list">
<span>Item 1</span>
<span>Item 2</span>
<span>Item 3</span>
</div>
Run Code Online (Sandbox Code Playgroud)
.list span:not(:last-child)::after {
content: ',';
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17989 次 |
| 最近记录: |