【发布时间】:2019-01-27 04:10:01
【问题描述】:
这是我的组件架构
组件<ListButtonMenu> 发出一个自定义事件display-error,如下所示。发射工作正常,因为我可以在 VueDevtools 中看到该事件:
<template>
<div>
<button type="button" class="btn btn-success" v-on:click="saveList()">
Save
</button>
</div>
</template>
<script>
export default {
props: {
list: Object
},
methods: {
saveList() {
this.$emit('display-error');
}
}
}
</script>
组件<ErrorMessage> 包含一个div 元素,它侦听自定义事件并调用方法display()。该方法更改组件 CSS 类以显示自己:v-on:display-error="display"。不幸的是,这不起作用,CSS 类没有改变。我错过了什么?
<template>
<div id="errorMessage" v-bind:class="cssClass" v-on:display-error="display()">
<div class="row justify-content-center alert alert-danger alert-dismissable text-danger">
Error: {{ errorMessage }}
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">
×
</button>
</div>
</div>
</template>
<script>
export default {
data: function () {
return {
'cssClass': 'd-none',
'errorMessage': 'Hello'
}
},
methods: {
display() {
this.cssClass = 'show';
this.errorMessage='Goodbye';
}
}
}
</script>
【问题讨论】:
标签: javascript events vue.js custom-events