如何将 'delegated' 函数的参数传递给另一个从 child 到 parents 的函数?

How to pass params of a 'delegated' function to another function from child to parents?

我有一个问题。我怎样才能调用一个(委托的)函数并向它添加一些参数,javascript 中有 vay 吗?

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

在grandchild中,我有一个OnEdit函数。它应调用其 parents onEdit 函数,因此 grandparent 组件接收 a) 更改的值和 b) 来自中间(TableView)的 prop a 和 b。

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

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

调用我的 parent 的 onEdit 函数,传递我的 child 给出的值并添加我的参数,例如:

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

有没有可能,或者你会如何解决这个问题?非常感谢您的帮助!

只需使用custom events

内部 click-to-edit 组件

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

Parent:

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

盛大parent:

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

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

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

然后爷爷和孙子吵架了。如果有人有同样的问题,我希望它能有所帮助:)