先上代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>vue.js嵌套for循环示例</title>
<style type="text/css">
.class1 {
border: 1px solid red;
margin: 10px;
width: 200px;
}
.class2 {
border: 1px solid green;
margin: 10px;
width: 200px;
}
</style>
</head>
<body>
<div id="content">
<div v-for="content in contents">
<div v-bind:class="content.classname">
<div class="mapTipImg"></div>
<div class="mapTipList">
<h2><a href="">{{content.name}}</a></h2>
<ul>
<li v-for="label in content.labels">
<a href="">{{label.labelname}}</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<script src="js/lib/jquery-1.11.1.min.js"></script>
<script src="js/vue.js"></script>
<script type="text/javascript">
new Vue({
el: '#content',
data: {
contents: [
{
classname: {
'class1' : true,
'class2' : false
},
imagesrc: 'img/HBuilder.png',
name: 'AAAAA',
labels: [
{ labelname:"bbb" },
{ labelname:"ccc" },
{ labelname:"ddd" }
]
},
{
classname: {
'class1' : false,
'class2' : true
},
imagesrc: 'img/HBuilder.png',
name: 'BBBBB',
labels: [
{ labelname:"eee" },
{ labelname:"hhh" },
{ labelname:"ggg" }
]
}
]
}
})
</script>
</body>
</html>
运行效果如下:
效果本例中主要展示了嵌套循环,动态分配样式类名和图片路径的方法,适合初学者参考。
需要注意的有以下几点:
1、循环的数据要用 [ ] 包起来,嵌套的循环也是一样;
2、v-bind:class和v-bind:src后的参数不需要用 {{ }} 包起来,其中v-band可以省略;
3、<script src="js/vue.js"></script>
这句引入代码必须要写在定义数据的JS代码之前,否则会提示VUE未定义。