v-for

2015-12-13 25 views
10

için v içinde bulunan hesaplanmış/Dinamik v modeli adı V-for ile oluşturulan bir form var.v-for

Not: Blade'den kurtulmak için "@" kullanıyorum.

Benim vue isstance vardır:

<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> 

Ben kendi yüklenici özelliğine her giriş bağlamak istiyorum:

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

Birlikte formu oluşturmak. Bu yüzden v-models değerlerinin owner.first_name, owner.last_name, owner.cell_phone ve sahip olması istiyorum. e-posta. Yapmam umuyordum:

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

Ama olsun:

[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) 

sahibi özellikleri, her giriş için input.name karşılık gelmektedir.

sayesinde uygulamanın

Açıklama: Birden fazla formları kullanarak bir sahibi kurmaya çalışıyorum. Her form, girişleri n ve bu form için eylemi içeren bir form nesnesini alan ajax isteği ile oluşturulur.

cevap

16

Bu deneyebilirsiniz:

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

Bu çalıştı! Teşekkürler! – Deciple