我正在尝试学习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)
谁能帮助我了解其运作方式?我没有找到类似例子的任何例子。
我制作了一个操作一些元素的 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)