| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8">
- <title>Vue.js modal component example</title>
- <!-- Delete ".min" for console warnings in development -->
- <script src="../../dist/vue.min.js"></script>
- <link rel="stylesheet" href="style.css">
- </head>
- <body>
- <!-- template for the modal component -->
- <script type="text/x-template" id="modal-template">
- <transition name="modal">
- <div class="modal-mask">
- <div class="modal-wrapper">
- <div class="modal-container">
- <div class="modal-header">
- <slot name="header">
- default header
- </slot>
- </div>
- <div class="modal-body">
- <slot name="body">
- default body
- </slot>
- </div>
- <div class="modal-footer">
- <slot name="footer">
- default footer
- <button class="modal-default-button" @click="$emit('close')">
- OK
- </button>
- </slot>
- </div>
- </div>
- </div>
- </div>
- </transition>
- </script>
- <!-- app -->
- <div id="app">
- <button id="show-modal" @click="showModal = true">Show Modal</button>
- <!-- use the modal component, pass in the prop -->
- <modal v-if="showModal" @close="showModal = false">
- <!--
- you can use custom content here to overwrite
- default content
- -->
- <h3 slot="header">custom header</h3>
- </modal>
- </div>
- <script>
- // register modal component
- Vue.component('modal', {
- template: '#modal-template'
- })
- // start app
- new Vue({
- el: '#app',
- data: {
- showModal: false
- }
- })
- </script>
- </body>
- </html>
|