Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Vue js вызвать метод (https://javascript.ru/forum/library-toolkit-framework/67119-vue-js-vyzvat-metod.html)

andrei24 29.01.2017 08:03

Vue js вызвать метод
 
Всем привет. Мучаюсь уже не один час. Задача: при клике на мышь вывести меню, далее при нажатии на пункт меню вызвать метод.
Проблема: метод create не отрабатывает.

<div id="app"></div>


var BodyMenu = new Vue({
    template: `\
        <div class="context-menu" :style="[{ left: pageX + 'px' }, { top: pageY + 'px' }, { display: display }]">\
            <ul>\
                <li onclick="alert(\'Клик!\')"><a id="createTable" onclick="alert(\'Клик!\')" @click="$emit(\'create\')">Create</a></li>\
            </ul>\
        </div>\
    `,
    data: function () {
        return {
            pageX: 0,
            pageY: 0,
            display: 'none'
        }
    },
    methods: {
        create() {
            alert(2);
        }
    }
});

const app = new Vue({
    el: '#app',
    mounted() {
        $(document).on('mousedown', this.bodyMenu);
    },
    methods: {
        bodyMenu() {
            $('.context-menu').remove();

                BodyMenu.pageX = event.pageX;
                BodyMenu.pageY = event.pageY;
                BodyMenu.display = 'block';
                var menu = BodyMenu.$mount();

                document.getElementById('app').appendChild(menu.$el);
        },

        create() {
            alert(12);
        }
    }
});

nerv_ 29.01.2017 09:52

Документацию пробовал читать? Там все разжовано.

<li><a id="createTable" v-on:click="create()">Create</a></li>


Часовой пояс GMT +3, время: 12:59.