代码之家  ›  专栏  ›  技术社区  ›  Vicky Gill

Vue JS加载带有模态的动态数据问题

  •  1
  • Vicky Gill  · 技术社区  · 7 年前

    这是我的表数据

     <tr v-for="company, index in companies.data" :key="index.id">
                    <td>{{ company.first_name }} {{ company.last_name }}</td>
                    <td>{{ company.license_no }}</td>
                    <td>{{ company.car_registration }}</td>
                    <td>
                    <button id="show-modal"  @click="modalOpen(0)" class="view-button">Call</button>
                     <modal v-model="compnay" v-if="showModal" @close="showModal = false">
                            <h3 slot="header" style="margin-left: auto;
        margin-right: auto;">{{company.first_name}} {{ company.last_name }}</h3>
                            <h3 slot="body">Car Registration No: {{company.car_registration}}</h3>                        
                        </modal>
                    </td>
                  </tr>
    

    我已经将动态数据传递给了模态槽 每次我单击不同的项目时都显示相同的内容 在我的API中,我有不同的数据,而且我的表中也显示了不同的数据,但是在模式加载相同的数据时。 这是模态内容

    <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" style="margin-left: auto;margin-right: auto;">         
                </slot>
              </div>
              <div class="modal-body" id="el">
                <slot name="body">
                </slot>
                <slot name="test">
                 Calling  @{{modalcompany}}
    
                </slot>
              </div>
    
              <div class="modal-footer">
                <slot name="footer">
    
                  <button class="modal-default-button view-button" @click="$emit('close')">
                    OK
                  </button>
                </slot>
              </div>
            </div>
          </div>
        </div>
      </transition>
    </script>
    

    情态内容

    1 回复  |  直到 7 年前
        1
  •  1
  •   ChainList    7 年前

    我想这里有一个快速的解决方法来解决你的问题,希望能有所帮助!

    <div id="app">
      <div v-for="company in companies">
        <div class="company">
          {{ company.name }} - <button @click="openModal(company)"> View appointments</button>
        </div>
      </div>
      <modal v-model="showModal" company="company">
        <div slot="header">{{company.name}}</div>
        <div slot="body">{{(company.appointments || []).join(', ')}}</div>
      </modal>
    </div>
    

    您可以在这里看到完整的演示: https://codepen.io/chainlist/pen/qMjBOQ