如何将“委派的”功能的参数从孩子传递给父母的另一个功能?

问题描述 投票:0回答:2

我有一个问题。如何调用(委托的)函数并向其中添加一些参数,javascript中是否存在方法?

我创建了一个小例子:https://jsfiddle.net/p7kL5mvw/

在孙中,我有一个OnEdit函数。它应调用其父onEdit函数,以便祖父母组件接收a)更改后的值和b)从中间(TableView)支撑a和b。

我正在寻找东西,所以我可以在这行中说:

<click-to-edit v-model="todos[idx].text" :editable="true" :pOnEdit="onEdit"></click-to-edit>

调用我父母的onEdit函数,传递孩子给出的值,并添加我的参数,例如:

:pOnEdit="onEdit(() => childArgument, todos[idx].a, todos[idx].b)

是否有可能,或者您将如何解决此问题?非常感谢您的帮助!

javascript vue.js vue-component ecmascript-5 arrow-functions
2个回答
1
投票

只需使用custom events

内部click-to-edit组件

<input @input="$emit('update', $event.target.value)" />

父母:

<click-to-edit v-model="todos[idx].text" :editable="true" @update="$emit('update', $event, todos[idx].a, todos[idx].b)"></click-to-edit>

[祖父母:

<Parent @update="onUpdate" />
methods: {
  onUpdate(childArgument, parentArgumentA, parentArgumentB) {
   // do whatever
  }
}

0
投票

实际上我找到了解决方案。由于您可以在VueJS模板中使用javascript,因此它只适用于:

:pOnEdit="onEdit.bind(this, todos[idx].a, todos[idx].b)"

然后,祖父母有孙子女的争论。如果有人有相同的问题,希望对您有所帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.