亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 435 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號