但是,我想使用条件字段动态创建表单。表单的定义在一个对象 Q 中。下面的例子是一个 Vue 组件,使用 bootstrap-vue。
<template>
<div>
<div v-for="q of Q">
<br/>
<template v-if="q.type == 'input'">
{{ q.question }}
<em v-if="q.comment"><br />{{ q.comment }}</em>
<b-form-input v-model="q.value" :type="q.subtype" :placeholder="q.placeholder"></b-form-input>
Value: {{ q.value }}
</template>
<template v-if="q.type == 'radio'">
{{ q.question }}
<em v-if="q.comment"><br />{{ q.comment }}</em>
<b-form-group>
<b-form-radio-group buttons
stacked
v-model="q.value"
:options="q.options"/>
</b-form-group>
Value: {{ q.value }}
</template>
</div>
</div>
</template>
<script>
export default {
name: 'Questionnaire',
data() {
return {
locale: 'en',
Q: [
{
name: 'age',
value: null,
question: 'How old are you?',
placeholder: 'Your age...',
comment: 'years since you were born',
type: 'input',
subtype: 'number',
range: [18, 99],
},
{
name: 'cq',
value: null,
question: 'Conditional Question?',
type: 'radio',
options: [
{text: 'Yes', value: '0'},
{text: 'No', value: '1'},
],
if: [{object: 'age', largerthan: 30}],
},
]
};
},
methods: {
onChange: function(){
alert('test');
},
},
}
</script>
我只想在年龄 > 30 时显示“条件问题”。
- 在对象 Q 中,我无法访问
this.Q
(因为它还不存在)。 - v-on:change="onChange" 可以工作,但这违背了 Vue 的全部要点
我不受对象的这种结构的约束,但是它将使用 AJAX 获得...
问题:有没有办法观看this.Q[0].value
?或仅当第一个问题具有一定价值时才使第二个问题可用的其他方法?