2 回答

TA貢獻1859條經驗 獲得超6個贊
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();
- 2 回答
- 0 關注
- 2311 瀏覽
添加回答
舉報