相关疑难解决方法(0)

如何捕获Vue.js上自定义指令的click事件?

我正在尝试学习Vue.js,并来到一个练习示例,在该示例中,我需要实现一个自定义指令,使虱子“ v-on”工作。这意味着我需要捕获自定义指令上的click事件并调用一个方法。

我在想的模板。

<template>
    <h1 v-my-on:click="alertMe">Click</h1>
</template>
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何在自定义指令中捕获click事件。请原谅下面的笨拙代码。

<script>
    export default {
        methods: {
            alertMe() {
                alert('The Alert!');
            }
        },
        directives: {
            'my-on': {
                bind(el, binding, vnode) {
                    console.log('bind');

                    el.addEventListener('click',()=>{
                        console.log('bind');
                        vnode.context.$emit('click');
                    });
                },

            }
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

谁能帮助我了解其运作方式?我没有找到类似例子的任何例子。

vue.js vuejs2 vue.js-directives

3
推荐指数
1
解决办法
4306
查看次数

VueJS 将计算值从组件传递到父级

我制作了一个操作一些元素的 VueJS 组件<select>。此 UI 的结果是用户选择一个值。

我在组件中有一个函数,computed用于在屏幕上显示用户选择的值。

我如何将此值传递回父 VueJS 事物?

这似乎与此有关$emit,但我没有看到我有活动。

我已经按照此处的建议筹集了一份资金,但现在还没有发生。

在组件中:

        computed: {
            selectedCode: function () {
                var selected = '(No code selected.)';
                if (this.category) { selected = this.category; }
                if (this.code) { selected = this.code; }

                this.$emit('selectedCode', selected);

                return selected;
            },
Run Code Online (Sandbox Code Playgroud)

在父 Vue 应用程序中:

<code-selector v-bind:code="code" v-on:selectedCode="codeSelect"></sic-selector>
Run Code Online (Sandbox Code Playgroud)

                methods:
                {
                    selectedCode: function (z) {
                        console.log(z);
                    },

Run Code Online (Sandbox Code Playgroud)

vue.js

1
推荐指数
1
解决办法
3286
查看次数

标签 统计

vue.js ×2

vue.js-directives ×1

vuejs2 ×1