【问题标题】:alpine.js - button in loop / click multiple times firedalpine.js - 循环中的按钮/单击多次触发
【发布时间】:2020-08-04 05:09:33
【问题描述】:

我是 alpine.js 的新手并且有一个奇怪的行为。我究竟做错了什么? 按钮操作“removePerson()”总是执行两次。我不知道 - 为什么?

<template x-for="(person, i) in persons" :key="i">
  <div class="mt-3">
    <label>Name <span x-text="i"></span></label>
    <div class="input-group">
      <input type="text" class="form-control" placeholder="Namen eingeben" x-model="person.name">
      <template x-if="i <= persons.length">
        <div class="input-group-append">
          <span class="input-group-text">
            <button type="button" @click.prevent="removePerson(i)" class="btn btn-primary">remove</button>
          </span>
        </div>
      </template>
    </div>
  </div>
</template>

更详细: https://codepen.io/derrobert/pen/Yzypzej

【问题讨论】:

    标签: javascript alpine.js


    【解决方案1】:

    移除模板标签并保留其中的元素

    <template x-if="i <= persons.length">
    </template>
    

    实时查看您的代码 https://codepen.io/vkv88/pen/yLYVYYB?editors=1010

    【讨论】:

    • +1 - 很好 - 但我可以问最后一个问题:如果我添加人员,我无法删除最后一个现有人员。假设我添加了 3 个人,然后从下到上单击“删除”。然后第一个元素始终保持可见,尽管计数器天数为“0”。这让我很困惑。任何帮助或提示都会很棒
    • 您需要的唯一模板语句是 x-for 模板,因此请删除该组元素的其他模板
    猜你喜欢
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 2016-09-07
    • 2021-06-27
    • 2021-12-25
    • 2021-03-21
    • 1970-01-01
    相关资源
    最近更新 更多