在Vuejs的插槽内设置v-model值

时间:2018-07-03 07:05:26

标签: vue.js vuejs2 vue-component

我有两个组成部分

child-component.vue

<template>
    <div class="container">
        <slot>
    </div>
</template>

parent-component.vue

<template>
    <my-component>
        <input type="text" v-model="myinput1">
        <input type="text" v-model="myinput2">
        <input type="text" v-model="myinput3">
    </my-component>
</template>
<script>
    export default {
        data() {
            return {
                myinput1: '',
                myinput2: '',
                myinput3: '',
            }
        }   
     }
</script>

我需要直接通过子组件设置插槽内每个输入字段的值(输入字段的数量可能会改变)。

有没有一种方法可以在不触发子组件事件的情况下实现?

谢谢

1 个答案:

答案 0 :(得分:1)

EDIT-修改了代码以处理可变数量的输入

在子组件中

<template>
    <div class="container">
        <slot :data="slotData" />
    </div>
</template>

<script>
  export default
  {
    data()
    {
      return {
        slotData: ['1', '2', '3']
      };
    }
  }
</script>

在父组件中

<template>
    <my-component>
      <template slot-scope="props">
        <input v-for="item in props.data" type="text" v-model="item">
      </template>
    </my-component>
</template>