У меня есть два однофайловых компонента, один для модального тела, а другой - список карт, которые используют это и динамически загружают значения в этом.
Вот imageModal.vue
, в основном шаблон bootstrap.
<template>
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" @click.prevent="close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" @click="close">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
</template>
<script>
import 'bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css'
export default {
name: 'imageModal',
methods: {
close() {
this.$emit('close');
}
}
}
</script>
А вот компонент tile.vue
, использующий его.
<template>
<div class="container-fluid">
<ul class="gallery justify-content-center list-group-flush">
<li class="mb-1 pics" v-for="post in postsWithPreview" v-bind:key="post.data.id">
<div class="card" @click.prevent="showModal">
<img :src="post.data.preview.images[0].source.url.replace('amp;s', 's')" class="img-fluid" alt="">
</div>
</li>
</ul>
<imageModal v-if="modalVisible"/>
</div>
</template>
<script>
import 'bootstrap/dist/css/bootstrap.min.css'
import imageModal from '@/components/imageModal.vue'
const axios = require('axios')
const baseURL = "https://www.reddit.com/r/wallpapers.json"
export default {
name: 'tile',
props: {
msg: String
},
data() {
return {
modalVisible: false,
postObjList: []
}
},
components: {
imageModal,
},
created() {
axios.get(baseURL)
.then(response => {
this.postObjList = response.data.data.children
console.log(this.postObjList)
console.log(this.postsWithPreview)
})
},
methods: {
showModal() {
this.modalVisible = true
},
closeModal() {
this.modalVisible = false
}
}
}
</script>
Но когда Я нажимаю на изображение карты, ничего не происходит. Что здесь происходит? И есть ли лучший способ сделать это? Я хочу сделать модальный динамический c, который будет содержать то же изображение, что и карта, по которой щелкают, а также некоторую дополнительную информацию о карте.