G2N*_*G2N 7 html javascript vue.js v-for
当在内联元素上使用v-for遍历数组(或对象)时,vuejs不会在该元素周围呈现空白。
例如,我有这个html:
<div id="app">
Vue Rendering<br>
<a v-for="fruit in fruits" v-bind:href="fruit.url" v-html="fruit.label"></a>
</div>
<div>
Navite rendering<br>
<a href="apple.html">Apple</a>
<a href="banana.html">Banana</a>
<a href="peach.html">Peach</a>
</div>
Run Code Online (Sandbox Code Playgroud)
和这个JavaScript:
var fruits = [
{
label: 'Apple',
url: 'apple.html'
},
{
label: 'Banana',
url: 'banana.html'
},
{
label: 'Peach',
url: 'peach.html'
}
];
var app = new Vue({
el: '#app',
data: {
fruits: fruits
}
});
Run Code Online (Sandbox Code Playgroud)
当Vue渲染此内容时,它将删除链接之间的空格。看到这个jsfiddle。
我该如何应对这种行为?
v-for上<template>与template相似
v-if,您也可以使用<template>标记v-for来呈现多个元素的块。例如:Run Code Online (Sandbox Code Playgroud)<ul> <template v-for="item in items"> <li>{{ item.msg }}</li> <li class="divider" role="presentation"></li> </template> </ul>
因此,为了得到兄弟元素(和是的,一个破空格字符 也要算一个),你必须循环添加到父<template>容器,然后包括任何元素/间距您在这样的循环内容要:
<template v-for="fruit in fruits" >
<span>{{fruit}}</span> 
</template>Run Code Online (Sandbox Code Playgroud)
从Vue 2.x +开始,模板会修剪所有换行符,即使它们已被转义。
相反,您可以像这样添加广告位或文本插值:
<template v-for="fruit in fruits" >
<span>{{fruit}}</span><slot> </slot>
</template>Run Code Online (Sandbox Code Playgroud)
<template v-for="fruit in fruits" >
<span>{{fruit}}</span>{{ ' ' }}
</template>Run Code Online (Sandbox Code Playgroud)
如果仅在元素之间需要空格,则可以有条件地输出空格:
<template v-for="(fruit, i) in fruits" >
<span>{{fruit}}</span>{{ i < fruits.length -1 ? ', ': '' }}
</template>Run Code Online (Sandbox Code Playgroud)
var app = new Vue({
el: '#app',
data: {
fruits: ["apple", "banana", "carrot"]
}
});Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.0/vue.js"></script>
<div id="app">
<template v-for="(fruit, i) in fruits" >
<span>{{fruit}}</span>{{ i < fruits.length -1 ? ', ': '' }}
</template>
</div>Run Code Online (Sandbox Code Playgroud)
深度阅读:
问题#1841- 建议:v-glue / v-for元素联接
小智 0
您可以使用CSS:
<a v-for="fruit in fruits" v-bind:href="fruit.url" v-html="fruit.label"
style="margin-right: 5px;"></a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2028 次 |
| 最近记录: |