Angular 4路由仅适用于下一条路由

时间:2017-11-09 10:55:55

标签: angular angular2-routing

我在Angular 2路线中遇到一个奇怪的问题,我只能路由到下一页但无法从该页面路由。

我有4个组件:主页,搜索结果,个人资料和管理员。

当我第一次到达Home组件时,我可以导航到搜索结果,但是从搜索结果中我无法导航到除Home组件之外的任何地方。

主页组件和应用程序顶部栏包含相同的逻辑(相同的代码),并且顶栏逻辑在导航时适用于所有页面。即,当我从任何页面导航到顶部栏按钮的搜索结果页面时,我能够导航到下一页和任何其他页面。

我的路线:

{path: '', component: HomeComponent},
{path: 'seachresult', component: SearchResultComponent},
{path: ':code', component: ProfileComponent},
{path: 'admin/account', component: AdminComponent}

在上面的HomeComponent中,我尝试了以下内容:

  • 取代''by'home'
  

{path:'home',component:HomeComponent},

  • 更新了以下路线:
  

{path:'',redirectTo:'home',pathMatch:'full'},{path:'home',   component:HomeComponent},

  • 直接从按钮的routerLink重定向到搜索结果页

以上都不能解决问题。

点击搜索按钮时,会执行以下代码:

this.router.navigate(['vendors', 'pokhara']);

以下是package.json中的版本:

  • “rxjs”:“^ 5.2.0”,
  • “@ angular / router”:“^ 4.1.0”,

1 个答案:

答案 0 :(得分:0)

希望您可能已经解决了这个问题,但是, 如果您无法使用router.navigate进行路由,为什么不使用路由器链接或routeBy Url 在.ts

import { Router } from '@angular/router';
....
 constructor(private router : Router){}
...
functionClick(){
this.router.navigateByUrl('/code');  // or any path
}

或直接在html中使用

<span routerLink="/code"></span>