2017-06-08 5 views
3

Ich habe eine Vue-Komponente, die ein Formular anzeigt, das mit Elementen aus einem ausgewählten Element gefüllt wird, das bearbeitet werden soll. Jetzt möchte ich kein zweites Formular zum Erstellen eines neuen Artikels verwenden müssen. Im Moment befülle und aktualisiere ich das Objekt automatisch mit dem v-model, das das Objekt natürlich aktualisiert. Kann ich bedingte Operatoren nicht so verwenden?Bedingte Operatoren im V-Modell verwenden?

<form @submit.prevent> 
    <div class="field"> 
    <label class="label">Job Title</label> 

    <p class="control"> 
     <input type="text" class="input" placeholder="Job title" v-model="experiences[editIndex].title ? experiences[editIndex].title : ''" /> 
    </p> 
    </div> 
</form> 

Antwort

3

können Sie bedingte Operatoren mit v-model, aber Sie können v-model eine Zeichenfolge nicht geben, wie Sie in Ihrem Beispiel sind versuchen.

Ich würde nicht das gleiche Formular zum Bearbeiten und Erstellen (möglicherweise Präferenz) verwenden. Ich würde das Formular zu einer eigenen Komponente machen und dann zwei zusätzliche Formularkomponenten zum Bearbeiten und Erstellen erstellen.

Wenn Sie jedoch wirklich die Logik in der v-model Direktive jedes Eingangs behandeln wollen, müssten Sie eine Variable im letzten Teil des ternären Operators angeben. Etwas wie dieses:

v-model="experiences[i].title ? experiences[i].title : newExperience.title"