使用 AlpineJS 在循环中动态设置输入字段的名称属性

esk*_*imo 3 javascript alpine.js

我想name用 AlpineJS 在循环中设置隐藏输入字段的属性。我试过了,x-bind:name但这不起作用。

我认为这不起作用,因为x-model如何添加待办事项:

<input x-model="todoText" type="text">

<button x-on:click.prevent="addTodo('new', todoText)">
    Add
</button>
Run Code Online (Sandbox Code Playgroud)

我怎样才能使下面的工作,以便todos数组中的索引键设置为该todoSingle.id值?

<template x-for="todoSingle in todoArray" :key="todoSingle.id">
    <input type="hidden" name="todos[todoSingle.id][id]" x-model="todoSingle.id">
    <input type="hidden" name="todos[todoSingle.id][type]" x-model="todoSingle.type">
    <input type="hidden" name="todos[todoSingle.id][description]" x-model="todoSingle.description">
</template>
Run Code Online (Sandbox Code Playgroud)

更新

代码笔在这里。如果添加待办事项,然后返回输入字段并键入,您将看到在每个键上都添加了相同的待办事项。

Hug*_*ugo 6

您需要使用x-bind:name模板字符串:

<input type="hidden" x-bind:name="`todos[${todoSingle.id}][id]`" x-model="todoSingle.id">
<input type="hidden" x-bind:name="`todos[${todoSingle.id}][type]`" x-model="todoSingle.type">
<input type="hidden" x-bind:name="`todos[${todoSingle.id}][description]`" x-model="todoSingle.description">
Run Code Online (Sandbox Code Playgroud)

查看固定的Codepen