gpt4 book ai didi

javascript - 如何在 SweetAlert2 html 输出中使用 v-for

转载 作者:搜寻专家 更新时间:2023-10-30 22:24:53 24 4
gpt4 key购买 nike

我正在尝试使用 vue-sweetalert2 在警报中显示以下模板:

<input v-model="name" class="swal2-input">

<select v-model="parent" name="parent" class="form-control">
<option v-for="category in categories" v-bind:value="category.id">
{{category.name}}
</option>
</select>

我在普通模板中没有任何问题,但我不知道如何在 SweetAlert2 中使用它.

我试过这段代码:

this.$swal({
text: 'edit child',
html:
'<input v-model="name" class="swal2-input">' +
`<select v-model="parent" name="parent" class="form-control">
<option value="">nothing</option>
<option v-for="category in categories" v-bind:value="category.id">
{{category.name}}
</option>
</select>`,
showCancelButton: true,
confirmButtonText: 'edit',
cancelButtonText: 'cancel',
showCloseButton: true,
})

但它什么也没显示。

最佳答案

由于传递给 SweetAlert2 的 HTML 不由 Vue 处理,模板机制(包括 v-forv-model)将不可用,因此您必须使用 JavaScript 手动创建模板。具体来说,您将替换:

html: `<input v-model="name" class="swal2-input">
<select v-model="parent" name="parent" class="form-control">
<option v-for="category in categories" v-bind:value="category.id">{{category.name}}</option> ...`

与:

html: `<input id="my-input" value="${this.name}" class="swal2-input">
<select id="my-select" value="${this.parent}" name="parent" class="form-control">
${this.categories.map(cat => `<option value="${cat.id}">${cat.name}</option>`)} ...`

注意 <input><select>获得了 ID,以便我们可以 fetch the values关于警报的“预先确认”:

const {value} = this.$swal({
preConfirm: () => [
document.getElementById("my-input").value,
document.getElementById("my-select").value
]
});
console.log(value[0]); // value of my-input
console.log(value[1]); // value of my-select

demo

关于javascript - 如何在 SweetAlert2 html 输出中使用 v-for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52744878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com