Das funktioniert, aber ich bin mir sicher, dass es einen viel besseren Weg dafür gibt. Bitte schauen Sie sich den document.getElementsByClassName()
Teil in der Nähe des Bodens an.Bessere Möglichkeit, die Schaltfläche "modal schließen" in Vue hinzuzufügen
html:
<modal>
<a slot="trigger">Show Modal</a>
<h3 slot="header">My Heading</h3>
<p slot="body">Here is the body of the modal.</p>
<div slot="footer">
Here is the footer, with a button to close the modal.
<button class="close-modal">Close Modal</button>
</div>
</modal>
Modal.vue:
<template>
<span>
<span @click="show = true">
<slot name="trigger"></slot>
</span>
<slot name="header"></slot>
<slot name="body"></slot>
<slot name="footer"></slot>
</span>
</template>
<script>
export default {
data() {
return { show: false }
},
mounted(that = this) {
document.getElementsByClassName('close-modal')[0].addEventListener('click', function() {
that.show = false;
})
}
}
</script>
Gibt es einen besseren Weg, dies zu tun?
ich machen möchte die innerhalb der Tag, nicht innerhalb der Komponente. Auf diese Weise kann ich ein Modal auf viele verschiedene Arten schließen, habe aber eine einzige modale Komponente. –
Travis
Nun, es ist noch einfacher, aber Sie müssen dem gleichen Ansatz folgen ... Ich werde meine Antwort hinzufügen – peaceman
@peaceman, Vielleicht können Sie mir helfen: https://stackoverflow.com/questions/45451971/how-can- i-display-modal-in-modal-auf-vue-Komponente –