@Bezlepkin
Yii, PHP, JS, Android

Как в Vue передать из компонента в родителя?

Привет! В однокомпонентной структуре vue предаю из дочернего компонента в родителя через emmit, все работает.

А вот так нет.

Vue.component('line-chart', {
    extends: VueChartJs.Line,
    data: function () {
        return {
            message: 'test'
        }
    },
    mounted () {
      this.$emit('changeMessage', this.message);
    }
})

var vm = new Vue({
    el: '.app',
    data: {
        data: null,
        message: 'Hello World'
    },
    methods: {
        changeMessage: function () {
            this.message = 'test';
        }
    }
})


<div class="app">
  {{ message }}
  <line-chart :chart-data="data" @changeMessage="changeMessage"></line-chart>
</div>
  • Вопрос задан
  • 2333 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
@changeMessage="changeMessage"

Да ну? Я вот слышал, будто бы

директивы прослушивания событий v-on внутри DOM-шаблонов автоматически преобразуются в нижний регистр (из-за нечувствительности HTML к регистру), поэтому v-on:myEvent станет v-on:myevent — что делает прослушивание события myEvent невозможным
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bootd
@bootd
Гугли и ты откроешь врата знаний!
в родителе написать:
var vm = new Vue({
    el: '.app',
    data: {
        data: null,
        message: 'Hello World'
    },
    mounted () {
       this.$on('changeMessage', (message) => {
         this.message = message
       })
    }
})


раз вы используете кастомные события, так читайте доку, как их слушать
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы