首页 新闻 搜索 专区 学院

这是一个关于vue.js用$emit进行平行组件传值的问题;劳烦各位大神瞟一眼,就一眼....

0
悬赏园豆:20 [已关闭问题] 关闭于 2017-04-24 23:13

问题描述:1.在main.js里面我是这样写的(实例那一部分)

1 new Vue({
2   el: '#app',
3   router,
4   render: h => h(App),
5   data: {
6     eventHub: new Vue()
7   }
8 })

可以看到我在这儿给data给了eventHub属性;而这个属性是一个vue实例;

我是想给个全局的空vue实例;专门来存数据;

下面的方法就是在各个组件中用了.....

2.发送数据的方法是

1 this.$root.eventHub.$emit('名字', myData)

接收数据是

 1 this.$root.eventHub.$on('名字', function (data) {  console.log(data);})

现在问题来了;

我的json数据是这样的(这里的第二行数据的key值(646116131313161)不确定;不像第一行是固定的(user));

1 {
2     "data":
3     [
4         {"564616":[{"exp":"gg"},{"cea":"333"}]},
5         {"874161":[{"exp":"ae"},{"cea":"465"}]}
6     ]    
7 }

所以我要把数据处理成这样:

1 [
2    {"title":"564616","content":[{"exp":"gg"},{"cea":"333"}]},
3    {"title":"874161","content":[{"exp":"ae"},{"cea":"465"}]}
4 ]

我是这样写的(我就写了接收的方法):

复制代码
 1 let arg=[];
 2 this.$root.eventHub.$on('data-a',function (msg) {
 3      for (var i;i<msg.data.length;i++) {
 4        for (key in msg.data[i]) {
 5          arg.push({"title":key,"content":msg.data[i][key]})
 6        }
 7      }
 8      console.log(arg);
 9      //结果是个空的arg数组;...
10 })
复制代码

打印出来的总是个空数组.....

我的悲伤逆流成河....

 

 

流年之外天空蓝的主页 流年之外天空蓝 | 初学一级 | 园豆:99
提问于:2017-04-24 22:49
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册