J'ai une application VueJS qui est une forme en plusieurs étapes, chaque étape du formulaire est un nouveau composant car ils contiennent chacun une logique, des vues, des scripts et des styles différents.Boucle VueJS en incrémentant des préfixes de nom de composant
J'ai nommé les composants, section1
, section2
, section3
etc .. Les données transmises par le parent, applicationForm
composant reste un style similaire, :errors="errors.section1" :warnings="warnings.section1" :form-data-"formData.section1"
Ma pensée a été au lieu de dupliquer le code et changer le numéro de section numérique chaque fois, si je pouvais le mettre dans un for loop
pour le rendre plus facile à gérer. Ainsi, le ci-dessous:
<section1 v-if="(step == 1)" class="relative" :errors="errors.section1 || {}" :warnings="warnings.section1 || {}" :form-data="formData.sections.section1 || {}" :user="user"></section1>
<section2 v-if="(step == 2)" class="relative" :errors="errors.section2 || {}" :warnings="warnings.section2 || {}" :form-data="formData.sections.section2 || {}" :user="user"></section2>
<section3 v-if="(step == 3)" class="relative" :errors="errors.section3 || {}" :warnings="warnings.section3 || {}" :form-data="formData.sections.section3 || {}" :user="user"></section3>
<section3 v-if="(step == 4)" class="relative" :errors="errors.section4 || {}" :warnings="warnings.section4 || {}" :form-data="formData.sections.section4 || {}" :user="user"></section3>
<section3 v-if="(step == 5)" class="relative" :errors="errors.section5 || {}" :warnings="warnings.section5 || {}" :form-data="formData.sections.section5 || {}" :user="user"></section3>
<section3 v-if="(step == 6)" class="relative" :errors="errors.section6 || {}" :warnings="warnings.section6 || {}" :form-data="formData.sections.section6 || {}" :user="user"></section3>
<section3 v-if="(step == 7)" class="relative" :errors="errors.section7 || {}" :warnings="warnings.section7 || {}" :form-data="formData.sections.section7 || {}" :user="user"></section3>
<section3 v-if="(step == 8)" class="relative" :errors="errors.section8 || {}" :warnings="warnings.section8 || {}" :form-data="formData.sections.section8 || {}" :user="user"></section3>
se transforme en quelque chose comme (je ne sais pas l'approche mais correcte):
<section{n} v-for="n in 8" class="relative" :errors="errors.section{n} || {}" :warnings="warnings.section{n} || {}" :form-data="formData.sections.section{n} || {}" :user="user"></section1>
Est-ce possible? Ou en raison de la façon dont l'objet data
est utilisé, ce n'est pas?
Je vous remercie de la réponse, mais cela ne permettra pas d'utiliser des composants différents pour les différentes parties de la forme en plusieurs étapes. Je voudrais toujours un moyen d'utiliser les autres composants, '', '' etc .. Je pourrais peut-être utiliser la méthode 'render' pour le faire par programmation. –
Désolé mon erreur .. il est possible de faire .. mettra à jour ma réponse sous peu –
@StefanDunn mis à jour ma réponse. –