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

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

使用UI路由器顯示404錯誤頁面時如何不更改URL

使用UI路由器顯示404錯誤頁面時如何不更改URL

弒天下 2019-11-02 14:09:39
我想顯示404錯誤頁面,但是我想在位置中保存錯誤的URL。如果我要做這樣的事情:$urlRouterProvider.otherwise('404');$stateProvider    .state('404', {        url: '/404',        template: error404Template    });網址將更改為/404。如何在不更改實際網址的情況下在錯誤的網址上顯示錯誤消息?
查看完整描述

2 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

有針對這種情況的解決方案。我們將使用1)一種ui-router本機功能和2)一種配置設置。這里可以看到一個有效的例子。


1)ui路由器狀態定義的本機功能是:


該url是沒有必要的??梢远x狀態而無需在位置上表示。


2)配置設置為:


otherwise()對于無效的路由,該參數不必是具有默認url的字符串,但也可以是一個函數(引用):

路徑字符串| 函數要重定向到的URL路徑或返回URL路徑的函數規則。函數版本傳遞兩個參數:$ injector和$ location


解決方案:兩者結合。我們將state 沒有 url and custom otherwise:


$stateProvider

  .state('404', {

    // no url defined

    template: '<div>error</div>',

  })


$urlRouterProvider.otherwise(function($injector, $location){

   var state = $injector.get('$state');

   state.go('404');

   return $location.path();

});


查看完整回答
反對 回復 2019-11-02
?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

截至ui-router#0.2.15您可以使用$state.go()和發送選項不更新位置:


$urlRouterProvider.otherwise(function($injector) {


  var $state = $injector.get('$state');


  $state.go('404', null, {

    location: false

  });


});


查看完整回答
反對 回復 2019-11-02
  • 2 回答
  • 0 關注
  • 777 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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