Ja!
Es ist möglich, eine Elternmethode von einem Kind anzurufen, und es ist sehr einfach.
Jede Vue-Komponente definiert die Eigenschaft $parent
. Über diese Eigenschaft können Sie dann jede Methode aufrufen, die im übergeordneten Objekt vorhanden ist. Hier
ist ein JSFiddle, das tut es: https://jsfiddle.net/50qt9ce3/1/
<script src="https://unpkg.com/vue"></script>
<template id="child-template">
<span @click="someMethod">Click me!</span>
</template>
<div id="app">
<child></child>
</div>
<script>
Vue.component('child', {
template: '#child-template',
methods: {
someMethod(){
this.$parent.someMethod();
}
}
});
var app = new Vue({
el: '#app',
methods: {
someMethod(){
alert('parent');
}
}
});
</script>
Hinweis: Während es ist nicht empfehlenswert, diese Art der Sache zu tun, wenn Sie getrennt wiederverwendbare Komponenten bauen werden, manchmal bauen wir damit verbundenen nicht wiederverwendbar Komponente und in diesem Fall ist es sehr praktisch.
In dem von Ihnen geposteten Code wird 'someMethod' ausgeführt, wenn auf 'benutzerdefiniertes Element' geklickt wird. Willst du das, oder gibt es ein anderes Szenario? – Bert
Mögliches Duplikat der [Vue.js Vererbungsaufrufmethode] (https://stackoverflow.com/questions/36764151/vue-js-inheritance-call-parent-method) – thanksd