您好我有关于使用独立Vue js将数据传递给模态组件的问题。 流程是用户点击“选择国家/地区”按钮,模态打开,用户可以选择带滑块的国家/地区。一旦用户点击确认,模态关闭。
我尝试使用for循环将数据传递给模态组件,但它也打印出许多按钮。
感谢您的帮助
我有一个用户可以选择国家/地区的HTML代码
<div class="select_championship_country" @click="enableCountryModal()">Select a country</div>
<modal v-if="showCountryModal" @close="showModal = false"></modal>
这是模态组件代码:
<!-- countury modal -->
<script type="text/x-template" id="modal-template">
<transition name="modal">
<div class="modal-mask">
<div class="modal-wrapper">
<div class="modal-container">
<div class="modal-header">
<slot name="header">
select the country you want to support
</slot>
</div>
<div class="modal-body">
<slot name="body">
<div class="country_select_carousel">
<div class="countrySlide">
<!-- <img :src="imgUrl + '/flags/' + item.imgName"> -->
</div>
</div>
</slot>
</div>
<div class="modal-footer">
<slot name="footer">
<div class="modal-default-button" @click="$emit('close')">
confirm
</div>
</slot>
</div>
</div>
</div>
</div>
</transition>
</script>
这是国家数据数组对象和模态组件
new Vue({
el: '#root',
components: {
modal: {
template: '#modal-template',
}
},
data: {
country_carousel_data: [
{
imgName: 'brasil.svg',
desc: 'brasil',
},
{
imgName: 'canada.svg',
desc: '',
},
{
imgName: 'egypt.svg',
desc: '',
},
{
imgName: 'france.svg',
desc: '',
},
{
imgName: 'germany.svg',
desc: '',
},
{
imgName: 'india.svg',
desc: '',
},
{
imgName: 'poland.svg',
desc: '',
},
{
imgName: 'portugal.svg',
desc: '',
},
{
imgName: 'tunisia.svg',
desc: '',
},
{
imgName: 'turkey.svg',
desc: '',
},
{
imgName: 'uk.svg',
desc: '',
},
{
imgName: 'usa.svg',
desc: '',
},
],
}
答案 0 :(得分:0)
你在模态模板中使用for-loop在哪里?我没有看到任何v-for。
你不应该在里面循环。我猜是因为你提到它打印出你在for循环中有许多按钮。 v-for应该在下面的标签上
<script type="text/x-template" id="modal-template">
<transition name="modal">
<div class="modal-mask">
<div class="modal-wrapper">
<div class="modal-container">
<div class="modal-header">
<slot name="header">
select the country you want to support
</slot>
</div>
<div class="modal-body">
<slot name="body">
<div class="country_select_carousel">
<div class="countrySlide">
<img v-for="item in country_carousel_data" :src="imgUrl + '/flags/' + item.imgName">
</div>
</div>
</slot>
</div>
<div class="modal-footer">
<slot name="footer">
<div class="modal-default-button" @click="$emit('close')">
confirm
</div>
</slot>
</div>
</div>
</div>
</div>
</transition>
</script>