2015-07-03 50 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。你能发布你有的模板加载代码吗? –