久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - Angular利用 broadcast和 on實(shí)現(xiàn)頁面跳轉(zhuǎn)并且傳遞數(shù)據(jù) 但是跳轉(zhuǎn)后收不到數(shù)據(jù)

瀏覽:147日期:2024-03-09 18:44:18

問題描述

我利用Angular中$broadcast和$on實(shí)現(xiàn)頁面跳轉(zhuǎn)并且傳遞數(shù)據(jù),但是跳轉(zhuǎn)后收不到數(shù)據(jù)(再次點(diǎn)擊按鈕才會顯示)具體要求:點(diǎn)擊第一個(gè)頁面的按鈕,傳遞一個(gè)數(shù)組(如下圖中的shopList數(shù)組)到第二個(gè)頁面,使得第二個(gè)頁面能夠接收到shopList數(shù)組

第一個(gè)頁面

<a ui-sref='app.checkOut' ng-click='checkoutShop(shopList)'><b>結(jié)算</b></a>

對應(yīng)的controller(是主控制器-父級)

$rootScope.checkoutShop=function(shop){ var shop_list_data = shop; console.log(shop_list_data); $rootScope.$broadcast(’to_checkout’, shop_list_data);};

第二個(gè)頁面的controller(是主控制器下的子集)

$scope.$on(’to_checkout’, function(event,data) { console.log(data);});

但是測試后發(fā)現(xiàn)第二個(gè)頁面的console.log(data)打印失敗,但是再次點(diǎn)擊又會成功,是路由的問題嗎?具體如下:主頁面如下,購物車是隱藏在側(cè)面的,點(diǎn)擊導(dǎo)航欄中的購物車,右側(cè)會出現(xiàn)購物車

javascript - Angular利用 broadcast和 on實(shí)現(xiàn)頁面跳轉(zhuǎn)并且傳遞數(shù)據(jù) 但是跳轉(zhuǎn)后收不到數(shù)據(jù)

剛開始:

javascript - Angular利用 broadcast和 on實(shí)現(xiàn)頁面跳轉(zhuǎn)并且傳遞數(shù)據(jù) 但是跳轉(zhuǎn)后收不到數(shù)據(jù)點(diǎn)擊按鈕后,傳遞數(shù)組并且跳轉(zhuǎn)到另外一個(gè)頁面,但是并沒有打印這個(gè)數(shù)組:

javascript - Angular利用 broadcast和 on實(shí)現(xiàn)頁面跳轉(zhuǎn)并且傳遞數(shù)據(jù) 但是跳轉(zhuǎn)后收不到數(shù)據(jù)

javascript - Angular利用 broadcast和 on實(shí)現(xiàn)頁面跳轉(zhuǎn)并且傳遞數(shù)據(jù) 但是跳轉(zhuǎn)后收不到數(shù)據(jù)再次點(diǎn)擊“結(jié)算”按鈕,就會打印了:

javascript - Angular利用 broadcast和 on實(shí)現(xiàn)頁面跳轉(zhuǎn)并且傳遞數(shù)據(jù) 但是跳轉(zhuǎn)后收不到數(shù)據(jù)

javascript - Angular利用 broadcast和 on實(shí)現(xiàn)頁面跳轉(zhuǎn)并且傳遞數(shù)據(jù) 但是跳轉(zhuǎn)后收不到數(shù)據(jù)請問這是什么原因?該如何解決呢?

問題解答

回答1:

去掉 ui-sref='app.checkOut' ,方法里先執(zhí)行$broadcast ,再路由跳轉(zhuǎn)。

<a ng-click='checkoutShop(shopList)'><b>結(jié)算</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’);};回答2:

為什么要在rootScope下添加點(diǎn)擊事件?直接添加在頁面的scope看看。

回答3:

$state.go 跳轉(zhuǎn)頁面的時(shí)候可以直接傳遞參數(shù),為什么還要用$broadcast

主控制器-父級

`$rootScope.checkoutShop=function(shop){ var shop_list_data = shop; console.log(shop_list_data); $state.go(app.checkOut,{data:shop_list_data});};`

主控制器下的子集

.controller(’XXXX’, [’$rootScope’, ’$scope’, ’$stateParams’, function($rootScope, $scope, $stateParams) {console.log($stateParams.data); }])

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 克山县| 裕民县| 六盘水市| 普格县| 洪泽县| 中宁县| 尉犁县| 陕西省| 南宁市| 余江县| 扬州市| 横山县| 万源市| 青州市| 祁门县| 阜新市| 永福县| 沿河| 兴安县| 历史| 安庆市| 元阳县| 曲阳县| 马鞍山市| 平利县| 剑川县| 姚安县| 武邑县| 临城县| 鞍山市| 喀喇沁旗| 修水县| 大田县| 长沙市| 孝昌县| 莱州市| 出国| 汕头市| 延安市| 枝江市| 新昌县|