2017-10-19 3 views
0

Ich habe einen einfachen Code für die Auswahl in Vue.Vue v-bind, wie funktioniert

<select class="form-control"v-model="complaint.no_document_reason"> 
    <option v-for="(value, key) in noDocReason" v-bind:value="key">{{ value }} </option> 
</select> 

Ich frage mich, warum es funktioniert nur, wenn ich v-bind:value='key' hinzufügen, aber wenn ich :value ='{{key}}' hinzufügen möchten, dann tut es nicht.

Meine Frage ist warum? Ich habe in der Dokumentation gelesen, dass es auf meine zwei Arten funktionieren sollte. Kann mir jemand erklären warum ich hier v-bind statt value='' verwenden soll?

+1

[Inline-Interpolation ('Wert machen =" {{ Schlüssel}} "') wurde in Vue v2] entfernt (https://vuejs.org/v2/guide/migration.html#Interpolation-within-Attributes-removed). Wenn du irgendwo liest, dass du das kannst, bezieht es sich auf Vue v1. – thanksd

+0

@thanksd oh Gott Du hast recht ... Also in Vue 2 gibt es v-bind nur für dynamisch veränderte Charaktere? Wie Werte, Klassen oder Stile? – wenus

Antwort

2

v-bind macht dynamische Attribut, das Sie beide v-bind:value="key" und :value="key" schreiben

Sie nicht attribute="{{}}" in Attribute verwenden können, so dass sie den dynamischen Einsatz v-bind:attribute="" oder :attribute=""

+0

Aber wenn ich dynamisches Attribut habe, kann ich nur v-bind: Attribut verwenden. In Vue 2 gibt es kein Attribut: = {{}}. Habe ich recht? – wenus

+1

Es gibt zwei Möglichkeiten: v-bind: value = "" und: value = "", beide machen dasselbe,: value = "" ist kürzer. –