在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  UI  HTML/ angularJS ui-router路由這種場(chǎng)景下怎樣阻止?fàn)顟B(tài)的加載?

angularJS ui-router路由這種場(chǎng)景下怎樣阻止?fàn)顟B(tài)的加載?

遇到一個(gè)這樣的場(chǎng)景,頁面路由狀態(tài)大致如下:index.html#/product
在"product"狀態(tài)的controller里面有一個(gè)判斷:

值為true就跳轉(zhuǎn)到/product/detail,為false就跳轉(zhuǎn)到/product/order

但是當(dāng)直接在瀏覽器輸入index.html#/product/detail,"product"狀態(tài)的值為false時(shí),"detail"狀態(tài)的controller里面的代碼也會(huì)執(zhí)行,雖然最終還是會(huì)跳轉(zhuǎn)到/product/order,但是感覺不合理。
請(qǐng)問類似這樣的場(chǎng)景比較好的處理方法是什么?直接輸入index.html#/product/detail時(shí)(product值為false),怎樣完全屏蔽掉"detail"狀態(tài)?

回答
編輯回答
毀了心

兩種解決方案

  1. 很方便,就是在detail控制器的開始執(zhí)行的階段判斷product是否是true,不是就$state.go跳轉(zhuǎn)到order,這種方式雖然在路由上看起來做了兩次跳轉(zhuǎn),但是我覺得可以接受;
  2. 在app.run里監(jiān)聽 $stateChangeStart事件,判斷即將跳轉(zhuǎn)的路由為detail并且product的值是否為true,在這里控制跳轉(zhuǎn)
2017年3月11日 12:19