我有一个问题。如何调用(委托的)函数并向其中添加一些参数,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)
是否有可能,或者您将如何解决此问题?非常感谢您的帮助!
只需使用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
}
}
实际上我找到了解决方案。由于您可以在VueJS模板中使用javascript,因此它只适用于:
:pOnEdit="onEdit.bind(this, todos[idx].a, todos[idx].b)"
然后,祖父母有孙子女的争论。如果有人有相同的问题,希望对您有所帮助:)