2015-07-03 57 views
7

任何人都可以點我就如何做一個正確的方向「404 - 找不到網頁」教程中angularJS一個單頁的應用程序。Angular.JS 404頁單頁應用

或更好地解釋如何實現這一點。

似乎有沒有多大對此在互聯網上。

+2

你在使用什麼路由器以及Angular的版本是什麼? –

+0

使用路由系統重定向到404頁面 – Fals

+0

是否意味着找不到路由或找不到模板? – nikhil

回答

1

我不會把它看作404頁面。

在您的SPA(單頁應用程序)中,您可以創建多個API調用,獨立更新儀表板上的小部件,其中9個成功(200個)成功(200個),一個失敗(404個),在這種情況下,您不想重定向用戶。

由於大衛·巴克說你有一個otherwise這是一個包羅萬象的頁面。

app.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/login', { 
     templateUrl: 'login.template.html', 
     controller: 'LoginController' 
     }). 
     when('/', { 
     templateUrl: 'dashboard.template.html', 
     controller: 'DashboardController' 
     }). 
     otherwise({ 
     redirectTo: '/' 
     }); 
    }]); 

因此,如果用戶輸入然後一個不正確的路線去到儀表板,唯一的問題是反饋:

1:你需要反饋的消息服務,實際的API 404已經有一個錯誤響應並且可以使用攔截器,指令和模型進行管理。

2:您可以通過反饋使用尋找$ routeChangeError運行方法和相同的指令和模型中的錯誤信息,然後添加了一個錯誤信息

我希望幫助。

4

在使用本機路由器的Angular SPA中,如果找不到路由,它將會遇到$routeProvider.otherwise()方法,從而加載一條路徑的視圖,從而通常會從服務器傳遞404路由。

angular.app('application', ['ngRoute']) 
    .config(['$routeProvider', function($routeProvider) { 

     // If route is not configured go to 404 route 
     $routeProvider.otherwise('/404'); 

     $routeProvider.when('404', { /* route configuration */ }); 

    }); 

這裏唯一的缺點是,URL pushState的也發生了變化,但會如果由服務器重定向到一個自定義的404已通常反正發生。

+0

所以如果templateURL沒有找到並返回404錯誤,那麼這個腳本將重定向到 –

+0

404頁不,不是在這種情況下。如果找不到templateUrl,Angular會報錯。你理論上可以捕獲這個錯誤並重定向到404。你能發佈你有的模板加載代碼嗎? –