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

KoG*_*oro 1 javascript event-bus vue.js vue-component vuejs2

我正在循环具有子组件的根组件。

<root-select v-for="offer in offers"  >
   <child-options v-for="item in options" >
   </child-options>
</root-select>
Run Code Online (Sandbox Code Playgroud)

但是,当我$emit从 child 获取 root 函数时,我所有的 root 组件都更改了这些数据。

孩子:

EventBus.$emit('toggle', value);
Run Code Online (Sandbox Code Playgroud)

根:

EventBus.$on('toggle', this.toggle);
Run Code Online (Sandbox Code Playgroud)

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

谢谢。

mar*_*kcc 5

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

在子组件函数中:

this.$emit('toggle', value);
Run Code Online (Sandbox Code Playgroud)

在父组件函数中:

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

<script>
...
methods:{
     onToggleFn:function(){
         //your logic here
     }
}
</script>
Run Code Online (Sandbox Code Playgroud)