【发布时间】:2019-07-10 21:15:19
【问题描述】:
我需要使用 <select> 输入在 Vue 中的父组件和子组件之间同步一个对象,但无法获得正确的语法。
组件:
<template>
<div>
<select :value="condition" @change="$emit('update:condition', $event.target.value)">
<option v-for="variable in variable_options" :value="variable" :key="genUniqueKey(variable)">{{ variable.name }}</option>
</select>
</div>
</template>
<script>
module.exports = {
props: ['variable_options', 'condition']
}
</script>
我需要类似标准的 .sync 修饰符,但它似乎不适用于带有对象的选择输入:
<variable-select :variable_options="application_questions" :condition.sync="rule.condition">
</variable-select>
condition 是一个具有id、name 和type 属性的对象,这些属性来自variable 数组中的variable 对象。我试过做一个initial_condition 道具,然后像文档推荐的那样在select 输入上做一个v-model='selected_condition',但我不知道如何将它与.sync 修饰符一起使用。使用:initial_condition.sync="rule.condition" 是不对的。
有没有办法从子组件中的选定选项传递对象属性,并响应式更新父组件?数据对象的属性是:
rule: {
condition: {
id: '',
name: '',
type: ''
}
}
【问题讨论】:
标签: vue.js vuejs2 vue-component