Estoy seguro de que hay una manera de hacerlo, pero no puedo entender por qué no funciona para mí (soy completamente nuevo en vuejs)
Intenté usar la etiqueta del botón:
<div v-for="line in lines"> <button v-bind:id="line.id" name="availabilityCheck" type="button"> Check availability </button> </div>Y la entrada de tipo de botón:
<div v-for="line in lines"> <input v-bind:id="line.id" name="availabilityCheck" type="button" value="Check availability" /> </div> Lo que sucede es que el navegador elimina la parte v-bind:id="line.id" por lo que básicamente los botones generados no tienen una identificación.
No estoy seguro de por qué no funciona para usted, pero idealmente debería funcionar si su matriz de líneas contiene la propiedad de identificación en los objetos.
demostración:
new Vue({ el: '#app', data: { lines: [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }] } }) <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <div v-for="line in lines" :key="line.id"> <input v-bind:id="line.id" name="availabilityCheck" type="button" value="Check availability" /> </div> </div>Captura de pantalla :
<div v-for="line in lines"> <button :id="'lin'+line.id" name="availabilityCheck" type="button"> Check availability </button> </div>Agregar una constante en el prefijo puede funcionar