Vue.js 独立Vue js:将数据传递到模式组件

Vue.js 独立Vue js:将数据传递到模式组件,vue.js,modal-dialog,components,Vue.js,Modal Dialog,Components,您好,我有一个关于使用独立Vue js将数据传递到模式组件的问题。 流程是用户点击“选择国家”按钮,模式打开,用户可以使用滑块选择国家。用户单击确认后,模式关闭 我尝试使用for循环将数据传递到模态组件,但它也打印出许多按钮 谢谢你的帮助 我有一个HTML代码,用户可以选择一个国家 <div class="select_championship_country" @click="enableCountryModal()">Select a country</div> &l

您好,我有一个关于使用独立Vue js将数据传递到模式组件的问题。 流程是用户点击“选择国家”按钮,模式打开,用户可以使用滑块选择国家。用户单击确认后,模式关闭

我尝试使用for循环将数据传递到模态组件,但它也打印出许多按钮

谢谢你的帮助

我有一个HTML代码,用户可以选择一个国家

<div class="select_championship_country" @click="enableCountryModal()">Select a country</div>
<modal v-if="showCountryModal" @close="showModal = false"></modal>

您在模态模板中的何处使用for循环?我没有看到任何v-for

您不应该在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>

选择要支持的国家/地区
确认

感谢您的回复,我正试图使用函数(项目)传递道具值,但单击了它。这就是为什么它被打印出许多按钮。我找到了如何将值作为道具通过文档进行传递的方法。这是我的密码笔
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: '',
      },
    ],
 }
<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>