1.首先定义一个公共的vue组件;
[html] view plain copy
var eventHub = new Vue();
eventHub.$on('translate', function (data) {
that.getCardNum(data);
});
var vm = new Vue({
el: '#example',
data: {
msg: 'Hello Directive',
data: {}
},
methods: {
getCardNum: function (data, on) {
eventHub.$emit('translate', data);
}
}
});
2.在事件当前的组件中,在created中,用$on向公共的组件eventHub传递,translate是自定义的,getCardNum(data)是要在外部调用的方法;
[html] view plain copy
3.最后在父组件中,注意负组件要用一个变量保存,var vm = new Vue({});
4.在父组件中的methods的方法中定义一个方法,在方法里用$emit接收公共组件里的方法;
[html] view plain copy
5.最后就可以在vue组件外部,或者文件外部调用getCardNum(data)这个函数,比如在html中就可以 onclick = vm.getCardNum() 这样来调用;vm是父组件
6.注意一定要把父组件的变量名写上 vm.getCardNum();