12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- function broadcast(componentName, eventName, params) {
-
- var $children;
-
- $children = this.$children;
- $children.map(child=>{
- if (componentName===child.$options.name) {
- child.$emit.apply(child,[eventName].concat(params))
- }else {
- broadcast.apply(child,[componentName,eventName].concat(params))
- }
- })
-
-
-
-
- }
- export default {
- methods: {
-
- dispatch(componentName, eventName, params) {
- let parent = this.$parent || this.$root;
- let name = parent.$options.name;
-
-
- while (parent && (!name||name!==componentName)) {
- parent = parent.$parent;
- if (parent) {
- name = parent.$options.name;
- }
- }
-
- if (parent) {
-
- parent.$emit.apply(parent,[eventName].concat(params))
-
-
-
- parent[eventName](params)
-
- }
- },
-
- broadcast(componentName, eventName, params) {
- broadcast.call(this,componentName, eventName, params)
- }
- }
- }
|