簡體   English   中英

使用AngularJS和routeparams的后退按鈕循環

[英]Back button loop with AngularJS and routeparams

這是我希望實現的目標:

  1. 用戶位於網址example.com/2上
  2. 用戶轉到網址example.com/2d <-這是無效的網址
  3. 用戶偏向於example.com/2d/404_error
  4. 用戶單擊瀏覽器的“后退”按鈕,然后進入example.com/2

這是我的問題

  1. 用戶單擊瀏覽器的“后退”按鈕並進入example.com/2d
  2. 再次將用戶自動轉發到example.com/2d/404_error

我創建了無限后退按鈕循環:(

在我的app.config中

.when('/:gameId/404_error', {
    templateUrl: 'views/page_not_found.html'
})

.when('/:gameId', {
    controller: 'game',
    templateUrl: 'views/gamePage.html'
})

未獲取數據時由app.factory調用

}, function(response) {
    // something went wrong
    $location.path("/" + id + "/404_error");
    return $q.reject(response.data);
});

我嘗試了“其他”方法,但是使用routeparams使其變得無用。

您可以在這里進行測試:

http://vivule.ee/2 <-工作網址

http://vivule.ee/2d <-無效的網址

window.history.go(-2)

此方法是純Javascipt,您可以嘗試在angularjs中使用$ window.history.go(-2)

干得好!

用ng-switch和ng-include修復了它

在控制器中,當未加載數據時,我添加了:

$scope.page_not_found = true;

在我添加的模板中:

<div ng-switch on="page_not_found">
   <div ng-if="page_not_found" ng-include="'views/page_not_found.html'"></div>
</div>

一切都發生在一個.html模板中。 我隱藏了主要內容,並使用ng-include導入404頁面,該解決方案似乎也更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM