0
我有一个VueJS应用程序是一个多步骤的形式,表单的每一步都是一个新的组件,因为它们每个都包含不同的逻辑,视图,脚本和样式。VueJS循环通过递增组件名称前缀
我有一个名为组件,section1
,section2
,section3
等。从父传递的数据,applicationForm
成分仍然是一个类似的风格,:errors="errors.section1" :warnings="warnings.section1" :form-data-"formData.section1"
我的想法是,而不是重复代码,并改变数值节号每一次,如果我可以把它放到一个for loop
,使它更容易管理。所以下面的:
<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>
转化为像(我不知道但正确的做法):
<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>
这可能吗?或者由于如何使用data
对象,它不是?
我欣赏响应,但这不会为多步表单的不同部分使用不同的组件。我仍然需要一种方法来使用其他组件,'',''等。我可以使用'render'方法来编程。 –
对不起我的错误..这是可能的..会尽快更新我的答案 –
@StefanDunn更新了我的答案。 –