我在Angular 2中寻找等效的$urlRouterProvider.otherwise
。
更多详情:
我有这样的路由器定义:
@RouteConfig([
{ path: "/", component: MultiPost, name: "Home", useAsDefault: true },
{ path: "/m/:collectionName/:categoryName/:page", component: MultiPost, name: "MultiPost" }
])
两条路线都运转良好,例如当我点击/
或/m/sth/sth/0
时,我得到了我想要的东西。
但是当我点击像/kdfsgdshdjf
这样的随机网址时,没有任何反应。页面已呈现,<router-outlet>
为空,因为没有路由匹配。
我想要做的是将所有不匹配的路由重定向到默认路由。我需要像$urlRouterProvider.otherwise("/");
这样的东西。
有谁知道怎么做?
答案 0 :(得分:6)
角度2中没有“其他”路线。但是使用通配符参数可以实现相同的功能,如下所示:
@RouteConfig([
{ path: '/', redirectTo: ['Home'] },
{ path: '/home', name: 'Home', component: HomeComponent },
// all other routes and finally at the last add
{path: '/*path', component: NotFound}
这只会加载'NotFound'组件,而url将与您导航到的相同。如果您希望所有不匹配的路由重定向到'404'网址,您可以执行以下操作:
//at the end of the route definitions
{ path: '/404', name: '404', component: PageNotFoundComponent },
{ path: '/*path', redirectTo:['404'] }
答案 1 :(得分:1)