javascript - v-for 循环不适用于数组项
问题描述
我有一个v-for
循环,应该循环图像 url 数组以将它们分配给src
swiper 实例的属性。我面临的问题是数据被打印为用逗号分隔的单个字符串,并且<img>
不会为数组中的每个图像 url 创建标签。有解决办法吗?问题发生在 vue 组件内部。
DOM Markup
<!-- swiper slider / this is part of a component -->
<div class="row m-0" v-for="page in pageData">
<div class="col-sm-12 col-md-12 col-lg-12 p-5 mt-5 mb-5" v-if="page.embedded.gallery_images">
<div class="swiper-container page-carousel">
<div class="swiper-wrapper">
<img v-for="img in feedImg" class="swiper-slide" :src="img" />
</div>
</div>
</div>
</div>
// Vue component
Vue.component('theme-page',{
template: '#page-tpl',
data(){
return{
pageData: [],
feedImg: []
}
},
watch: {
$route( to, from ){
//console.log('c instance:'+ to, from);
this.getPage();
}
},
mounted: function(){
this.getPage();
this.initSwiper();
},
methods: {
getPage: function(){
console.log(this.$route.params.slug);
axios.get(theme.pages_rest_url+'?slug='+ this.$route.params.slug)
.then( (response) => {
console.log(response.data);
response.data.forEach( (item, i) => {
this.pageData = [item];
this.feedImg = [item.embedded.gallery_images];
});
console.log(this.feedImg);
});
},
initSwiper: function(){
const feedSwiper = new Swiper('.page-carousel', {
slidesPerView: 4,
//spaceBetween: 80,
slidesPerGroup: 4,
virtual: {
cache: true,
slides: this.feedImg,
renderExternal: function(feedImg){
this.feedImg = feedImg;
}
},
//loop: true,
autoplay: {
delay: 5000
},
//loopFillGroupWithBlank: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
});
}
}
});
解决方案
推荐阅读
- mongoose - TypeError:无法读取未定义的属性“创建”
- scripting - 如何在 OpenTest 框架中实现拆卸
- python - 使用 Click 在命令行应用程序中对断言进行单元测试
- python - 在 Databricks 中读取 blob 存储中的数据
- geolocation - 最新 CSV 中的 Maxmind 免费 GeopIP 编码问题
- vb.net - 如何将 DataGridView 的一部分复制到剪贴板?
- spring-data-rest - spring-data-rest 一次返回多个投影(组合投影)
- weblogic - 更新 weblogic 应用程序名称
- python - Python:TypeError:需要一个整数(获取类型 str)
- java - Swagger:结构错误应该具有必需的属性'paths'missingProperty:paths - 将公共组件提取到外部swagger文件