为了账号安全,请及时绑定邮箱和手机立即绑定

Angular利用 broadcast和 on实现页面跳转并且传递数据 但是跳转后收不到数据

Angular利用 broadcast和 on实现页面跳转并且传递数据 但是跳转后收不到数据

郎朗坤 2018-11-15 14:15:41
我利用Angular中broadcast和on实现页面跳转并且传递数据,但是跳转后收不到数据(再次点击按钮才会显示)具体要求:点击第一个页面的按钮,传递一个数组(如下图中的shopList数组)到第二个页面,使得第二个页面能够接收到shopList数组第一个页面<a ui-sref="app.checkOut" ng-click="checkoutShop(shopList)"><b>结算</b></a>对应的controller(是主控制器-父级)$rootScope.checkoutShop=function(shop){       var shop_list_data = shop;     console.log(shop_list_data);     $rootScope.$broadcast('to_checkout', shop_list_data); };第二个页面的controller(是主控制器下的子集)$scope.$on('to_checkout', function(event,data) {       console.log(data); });但是测试后发现第二个页面的console.log(data)打印失败,但是再次点击又会成功,是路由的问题吗?具体如下:主页面如下,购物车是隐藏在侧面的,点击导航栏中的购物车,右侧会出现购物车刚开始:点击按钮后,传递数组并且跳转到另外一个页面,但是并没有打印这个数组:再次点击“结算”按钮,就会打印了:请问这是什么原因?该如何解决呢?
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

去掉 ui-sref="app.checkOut" ,方法里先执行$broadcast ,再路由跳转。

<a ng-click="checkoutShop(shopList)"><b>结算</b></a>


$rootScope.checkoutShop=function(shop){  

    var shop_list_data = shop;

    console.log(shop_list_data);

    $rootScope.$broadcast('to_checkout', shop_list_data);

    $state.go('app.checkOut');

};


查看完整回答
反对 回复 2018-12-10
  • 1 回答
  • 0 关注
  • 443 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号