【问题标题】:boostrap issue in single page单页引导问题
【发布时间】:2020-12-25 17:06:15
【问题描述】:

我一直在尝试为数组元素创建一个卡片组件,然后单击卡片的标题,应该会打开一个显示特定数组元素信息的模式。但是,在单击标题时,会打开多个模式,本质上即使我单击特定元素的标题,也会打开所有数组元素模式。我该如何做到这一点,以便只打开该特定模态的模态?我正在使用 vue 引导程序

     <div
        v-for="(value,key,index) in flowers"
        :key="value"
        class="card"
      >
        <div v-b-modal.modal-1 class="card-header" >
          <div>
            {{ value.name }}
          </div>
          <b-modal id="modal-1" title="Flowers">
            <p class="my-4" v-for="item in value.petals" :key="item">{{item}}</p>
          </b-modal>
        </div>
     </div>

【问题讨论】:

    标签: javascript twitter-bootstrap vue.js bootstrap-4


    【解决方案1】:

    您将相同的id 分配给您的所有模式。这意味着您正在创建一堆 ID 为 modal-1 的模态,然后单击标题告诉您的代码打开所有 ID 为 modal-1 的模态。

    您需要为每个模态分配一个唯一的id

    在下面的 sn-p 中,我使用的是 key,但如果您对每个条目都有一个唯一值,我建议您改用它。

    <div
      v-for="(value, key, index) in flowers"
      :key="value"
      class="card"
    >
      <div v-b-modal:[`modal-${key}`] class="card-header" >
        <div>
         {{ value.name }}
        </div>
        <b-modal :id="`modal-${key}`" title="Flowers">
          <p class="my-4" v-for="item in value.petals" :key="item">{{item}}</p>
        </b-modal>
      </div>
    </div>
    

    【讨论】:

    • 我有一个问题,假设标题上还有其他按钮,当我单击标题上的其他按钮时,我不希望模式打开,但是如果我单击其他任何地方,那么我想要模态打开。该怎么做?
    • 在您的点击事件中使用.stop 修饰符。 &lt;button @click.stop="onClick"&gt;,这将阻止事件传播到标题事件。
    【解决方案2】:

    我认为你所有的模态都有相同的 id id="modal-1"。您可以尝试使用顶部v-forkey 像一个id,像这样id="modal-{{key}}

    这是一个例子:

    <tbody>
      <tr v-for="item in items" v-on:click="select($event)" id="{{ item.ID }}">
         <td class="cod">{{ item.ID }}</td><td class="name">{{ item.NAME }}</td><td class="cat">{{ item.CATEGORY }}</td><td class="price">{{ item.PRICE }}</td>
      </tr>
    </tbody>
    

    【讨论】:

    • 是的,我想使用 v-for 中的密钥,但不确定在哪里使用它。我尝试了v-b-modal.modal-1(key)&lt;b-modal id="modal-1"&gt; 以及您的解决方案,但它对我不起作用
    猜你喜欢
    • 2013-10-14
    • 2017-07-05
    • 2013-08-03
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    相关资源
    最近更新 更多