Я хочу добавить обработчик событий для кнопки, которая будет отображать компонент с помощью Vue.js 2.0 - PullRequest
0 голосов
/ 30 января 2019

Я хочу добавить обработчик событий для моего компонента.Когда я нажимаю кнопку, я хочу, чтобы компонент показывался.Я испробовал все виды решений, но я думаю, что мои знания отсутствуют.Вот мой код, буду благодарен за помощь.Не стесняйтесь объяснять, какие методы лучше всего подходят для решения этой проблемы, и как я должен думать в подобных сценариях.Оцените свое время.

HTML

    <!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
    <link rel="stylesheet" href="main.css">
    <title>SneakPeak</title>
  </head>
  <body>
  <div id="body-div"> 


      <div id="app">
        <modal-button></modal-button>
        <modal-1 v-if="modalStatus == 2"></modal-1>
      </div>


    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
    <!-- development version, includes helpful console warnings -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="app.js"></script>
</div>
</body>
</html>

JAVASCRIPT

// Define a new component called button-counter
Vue.component('modal-button', {
  data: function () {
    return {
      count: 0,

    }
  },
  template: '<button v-on:click="count++">You clicked me {{ count }} times.</button>'
})

// Defining a component called modal-1
Vue.component('modal-1', {
  props: ["sModal"],
  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>
  `
})



var shaba = new Vue({
  el: '#app',
  props: ["sModal"],
  data: {
    modalStatus: 0
  },
})




// // register modal component
// Vue.component('modal', {
//   template: modalTemplate
// })

// // start app
// new Vue({
//   el: '#body-div',
//   data: {
//     showModal: false
//   }
// })

1 Ответ

0 голосов
/ 30 января 2019

Старый ответ : если вы хотите показать / скрыть свой компонент при щелчке, то используйте @click="val = !val" на кнопочном компоненте и v-if или v-show="val" на модальном компоненте, чтобы включить / отключить отображение.

установите val: false в своих данных.

Новый ответ : похоже, что кнопка уже захватывает щелчок, поэтому следуйте этой ручке https://codepen.io/ashwinbande/pen/WPozgR

то, что мы делаем, - это нажатие кнопки, когда выполняется метод, который увеличивает счетчик, а также генерирует пользовательское событие.В компоненте кнопки для этого события мы меняем значение val.тогда val используется, чтобы показать скрыть модальный компонент`!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...