不同路由下的ajax请求,vue/vue-router模型中,在父组件通过ajax获取数据后,如何传输给不同路由分支中的组件?...

我目前情况,父组件在ready中通过Ajax得到总的外部数据,然后通过$broadcast,让当前路由里的子组件,成功收到数据。但是路由一变,数据就没有了。这种模式,如何让每个子组件都得到数据?

我也想过router.afterEach时再次$broadcast,但不知如何写代码,也不知道这样做是否合理?

用的是vue1.0.28版本,没用2.0版本。

父组件app.js

var App = Vue.extend({

components: { nav_main,foot,modal },

data() {

return {

mydata:{}

}

},

methods: {

send_data: function() {

var self = this;

$.ajax({

url: './data/main.json'

})

.done(function(data) {

self.mydata = data;

self.$broadcast("done", self.mydata);

})

}

},

ready () {

this.send_data;

}

});

Vue.use(VueRouter);

var router = new VueRouter();

router.map({

'/sc_cover': {component: sc_cover,tit:"封面页" },

'/sc_yfh': {component: sc_yfh,tit:"云峰湖" },

'/sc_holiday': {component: sc_holiday,tit:"住假" },

'/sc_expe':{component: sc_expe,tit:"体验"}

})

router.afterEach(

function (arg) {

document.title= arg.to.tit;

}

);

router.start(App, '#app');

router.go({"path":"/sc_holiday"});

子组件sc_yfh.vue接收$broadcast传来的数据:

events: {

"done": function(data) {

this.mydata = data;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值