Vue2在循环组件中从子级调用父级方法

时间:2018-07-17 13:01:25

标签: javascript vue.js vuejs2 vue-component event-bus

我正在循环使用带有子组件的根组件。

<root-select v-for="offer in offers"  >
   <child-options v-for="item in options" >
   </child-options>
</root-select>

但是,当我从子项$emit生成root函数时,我所有的roots组件都更改了这些数据。

孩子:

EventBus.$emit('toggle', value);

根:

EventBus.$on('toggle', this.toggle);

但是我需要,仅在触发的组件中更改数据。

谢谢。

1 个答案:

答案 0 :(得分:0)

尽量不要使用事件总线来发出。使用正常的发射方式从孩子向父母发射。

在子组件功能中:

this.$emit('toggle', value);

在父组件功能中:

<template><child-options v-for="item in options" @toggle="onToggleFn"></child-options></template>

<script>
...
methods:{
     onToggleFn:function(){
         //your logic here
     }
}
</script>