<template>
<div>
<el-form
ref="dataForm"
class="form-container"
label-position="top"
>
<div
v-for="(item, index) in tExamInfo"
:key="index"
>
<el-form-item
:label="item['标签']"
>
<div
v-for="(t, x) in item['题目数']"
:key="x"
>
{{ item['标签'] }}{{ t }}
<el-input
v-for="(i, k) in item['题目信息']"
:key="k"
class="test-input"
:placeholder="i"
@blur="test()"
/>
</div>
</el-form-item>
</div>
</el-form>
</div>
</template>
<script>
export default {
name: 'App',
data() {
return {
tExamInfo: [
{
'标签': '简答题',
'得分点': 3,
'题目数': 3
},
{
'标签': '辨析题',
'得分点': 2,
'题目数': 2
}
]
}
},
created() {
this.getList()
},
methods: {
getList() {
let b = {}
const singleTopic = []
this.tExamInfo.forEach((item, index) => {
for (let i = 0; i < item['题目数']; i++) {
b[item['标签'] + (i + 1)] = new Array(item['得分点']).fill('')
singleTopic.push(b)
b = {}
}
this.tExamInfo['题目信息'] = singleTopic
})
}
}
}
</script>
代码说明:
后台返回 tExamInfo ,内容为动态
前端需要根据对应信息生成一个下图的表单
https://i.imgur.com/Bl4Nn4o.png
问题:
<el-input>不知道该怎么写,可以根据得分点生成对应数量的 input 同时正确绑定 v-model
目前想法是根据每道题的得分点生成相应的空数组去绑定 v-model (方法在 getList 中),但是后面不知道该怎么写了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.