Задать вопрос
Martovitskiy
@Martovitskiy

Как кликнуть кнопку, используя $emit vue.js?

Не получается пробрасить клик в дочерний элемент. Читаю документацию и не понимаю https://vuejs.org/v2/guide/
index.vue

<template>
    <div class="fullpage-container">
        <div class="page-home">
            <div class="button-group">
                <b-button-group vertical>
                    <b-button type="button"  v-bind:class="[{active:index ==0}]" @click="moveTo(2)">   // кликнуть эту кнопку
                        button
                    </b-button>
                </b-button-group>
            </div>
            <div class="fullpage-wp" v-fullpage="opts" ref="example">
                ...
                <div class="page">
                    <logo></logo>
                </div>
                ...
            </div>
        </div>
    </div>
</template>
<script>
import Logo from '~/components/Logo.vue'

export default {
  data () {
    var that = this
    return {
      index: 0,
      opts: {
        start: 0,
        dir: 'v',
        duration: 500,
        beforeChange: function (prev, next) {
             that.index = next
        },
        afterChange: function (prev, next) {
        }
      }
    }
  },
  methods: {
    moveTo (index) {
      this.$refs.fullpage.$fullpage.moveTo(index, true)
    }
  },
  components: {
    Logo
    ...
  }
}
</script>


logo.vue
<template>
    <b-button v-on.click="trigger">click</b-button>  // этой кнопкой
</template>
<script>
export default {
   data () {
....
  },
  methods: {
        trigger: function () {
    	      // this.$emit
      }
  }
}
</script>
  • Вопрос задан
  • 2425 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@Artem0071
Безработный mr. Junior
В основном компоненте:
<logo @handleAction="moveTo"></logo>

В лого:
trigger: function () {
    this.$emit('handleAction')
}


Правда я не понял какой вы там index хотите получить, но проброска делается так

Если хотите еще какую то переменную пробросить, то надо так:
trigger: function () {
    this.$emit('handleAction', someParam)
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
EddiePoe
@EddiePoe
Пытаюсь саморазвиваться... но что то не выходит
@click.native="<blockquote>Метод/Функция/...</blockquote>"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы