2015-12-13 11 views
10

Ho un modulo generato tramite un v-for.Nome di modello dinamico/calcolato all'interno di v-for

Nota: sto utilizzando "@" per evitare la lama.

mio vue isstance ha:

data: { 
    form: { 
     inputs: [{icon: "", name="", placeholder: "", type="", value=""}] 
    }, 
    owner: {first_name: "", last_name: "", cell_phone: "", email: ""} 
} 

ho generare il modulo con:

<template v-for="input in form.inputs"> 
    <div style="margin-bottom: 25px" class="input-group"> 
     <span class="input-group-addon"><i class="glyphicon [email protected]{{input.icon}}"></i></span> 
     <input id="[email protected]{{input.name}}" v-model="?????" type="@{{input.type}}" class="form-control" name="@{{input.name}}" placeholder="@{{input.placeholder}}"> 
    </div> 
</template> 

voglio legare ogni ingresso alle rispettive proprietà contraente. Quindi voglio che i valori dei v-models siano owner.first_name, owner.last_name, owner.cell_phone e owner. e-mail. Speravo che potevo fare:

v-model="'owner' + @{{input.name}}" 

Ma ottengo:

[Vue warn]: v-model="'owner' + {{input.name}}": attribute interpolation is not allowed in Vue.js directives and special attributes. 
vue.js:1956 Error: Warning Stack Trace 
    at warn (vue.js:1956) 
    at Directive.bind (vue.js:4507) 
    at Directive._bind (vue.js:8668) 
    at linkAndCapture (vue.js:7367) 
    at compositeLinkFn (vue.js:7345) 
    at new Fragment (vue.js:5373) 
    at FragmentFactory.create (vue.js:5575) 
    at Directive.create (vue.js:5844) 
    at Directive.diff (vue.js:5757) 
    at Directive.update (vue.js:5692) 

Le proprietà proprietario corrispondono alla input.name per ogni ingresso.

Grazie

Descrizione del app: Sto cercando di costruire un proprietario utilizzando molteplici forme. Ogni modulo viene generato tramite una richiesta Ajax che ottiene un oggetto modulo che contiene gli input n e l'azione per tale modulo.

risposta

16

Si potrebbe provare questo:

v-model="owner[input.name]" 
+0

questo ha funzionato! Grazie! – Deciple

Problemi correlati