Je suis nouveau sur VueJS. J'essaye de créer un formulaire avec la fonctionnalité simple d'enregistrement et d'annulation. Lors de la liaison du modèle pour former des champs, ils sont mis à jour immédiatement lorsque les entrées sont modifiées, mais je ne veux pas que la liaison étroite. Au lieu de cela, je veux être en mesure d'enregistrer et de soumettre lorsque le bouton "Enregistrer" est pressé et revenir sur les changements lorsque le bouton "Annuler" est pressé.Modification d'un formulaire avec les options Enregistrer et Annuler
Quelle est la manière suggérée de Vue de faire cela?
Ce serait également idéal si nous pouvions montrer l'état de sauvegarde du serveur et l'indiquer sur le formulaire si la soumission échouait. Si vous connaissez des exemples ou des échantillons qui seraient extrêmement utiles. Merci!
Voir en JSFiddle
<template>
<div id="app">
<div>
First Name:
<input type="text" v-model="user.firstName" :disabled="!isEditing"
:class="{view: !isEditing}">
</div><div>
Last Name:
<input type="text" v-model="user.lastName" :disabled="!isEditing"
:class="{view: !isEditing}">
</div>
<button @click="isEditing = !isEditing">
{{ isEditing ? 'Save' : 'Edit' }}
</button>
<button v-if="isEditing" @click="isEditing = false">Cancel</button>
</div>
</template>
<script>
var app = new Vue({
el: '#app',
data: {
isEditing: false,
user: {
firstName: 'John',
lastName: 'Smith'
}
}
})
</script>
<style>
.view {
border-color: transparent;
background-color: initial;
color: initial
}
</style>
Généralement, faites un composant hors du formulaire, émettre les modifications quand vous le souhaitez. [Voici un exemple] (https://stackoverflow.com/a/44791310/38065). – Bert
Copie possible de [CommentJS droit d'éditer prop sans modifier les données parent] (https://stackoverflow.com/questions/44790842/vuejs-right-way-to-edit-prop-with-changing-parent-data) –
Je ne pense pas que ce soit un double de cette question. Cette question concerne spécifiquement les accessoires d'un composant parent lorsqu'il s'agit d'un seul composant et l'utilisation de 'v-model'. –