我无法弄清楚如何在一个组件中触发兄弟方法
我有这样的方法
methods: {
closeModal: function(){
function closeM(){
$('.modal').css({opacity: 0 , 'visibility':'hidden'});
}
closeM();
},
closeOutside: function(){
$(document).mouseup(function (e){
var container1 = $('.modal__box');
if (!container1.is(e.target) &&
container1.has(e.target).length === 0)
{
this.$emit('closeModal',closeM());
}
});
}
}
我的模板
<div class="modal" @click="closeOutside()">
<div class="modal__box z-depth-2 pr">
<div class="modal__header"> {{header}} </div>
<i class="modal__close pa fa fa-times" @click="closeModal() "> </i>
<div class="modal__content">
<slot> </slot>
</div>
</div>
</div>
我无法触发closeModal,我错过了什么?我对vue js有点新鲜,为什么它不起作用?谢谢!
答案 0 :(得分:1)
在Vue中,所有方法都将绑定到this
,就像任何数据和计算方法一样。
所以你可以使用this.closeModal()
编辑:
我创造了一个可以帮助你入门的小提琴。注意:这是对您当前解决方案的完整返工,但它正在按照“vue&#39;方式。
我也是vue的新人,所以随时改进它。
答案 1 :(得分:0)
this.$emit('closeModal',closeM());
替换为
this.$emit('closeModal',this.closeModal());