2016-01-20 83 views
6

非匹配的路由我在角2重定向角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("/");

有誰知道該怎麼做?

回答

1
+0

壞消息對我來說,但謝謝你讓我知道。 –

+1

是的,我也期待着這個,你仍然可以重定向到後端服務器。 – Langley

+0

它現在被實現,可以像這樣使用: const appRoutes:Routes = [ {path:'**',component:PageNotFoundComponent} ]; –

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'] } 
+0

@Langley答案是正確的,雖然這應該被接受,因爲這也提供瞭解決方案。 –