【问题标题】:Angular 4 routing works for only one next routeAngular 4 路由仅适用于下一条路由
【发布时间】:2018-04-22 08:08:35
【问题描述】:

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

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

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

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

我的路线:

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

在这里,在上面的 HomeComponent 中,我尝试了以下操作:

  • 将 '' 替换为 'home'

{路径:'home',组件:HomeComponent},

  • 更新路线如下:

{path: '', redirectTo: 'home', pathMatch: 'full'}, {path: 'home', 组件:HomeComponent},

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

以上都不能解决问题。

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

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

以下是 package.json 中的版本:

  • "rxjs": "^5.2.0",
  • "@angular/router": "^4.1.0",

【问题讨论】:

  • 如果您使用 Angular 2 应用程序,为什么要使用 Angular 4 路由器?
  • 如果你能提供一个 plunker 会很有帮助
  • @Ploppy "@angular/animations": "^4.1.0", "@angular/common": "^4.1.0", "@angular/compiler": "^4.1.0 ", "@angular/core": "^4.1.0", "@angular/forms": "^4.1.0", "@angular/http": "^4.1.0", "@angular/platform- browser": "^4.1.0", "@angular/platform-b​​rowser-dynamic": "^4.1.0", "@angular/router": "^4.1.0" 实际上,我在一个模板中工作package.json 中有以下内容。所以,我认为它会说 angular 4
  • 你能告诉我们你吗app.component.html
  • 我认为您的问题在于 router.navigate 中的路径设置。有一种可能。请在 stackblitz 上分享您的代码,以便我们更好地为您提供帮助。谢谢你:)

标签: angular angular2-routing


【解决方案1】:

希望您可能已经解决了这个问题,但仍然, 如果您无法使用 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 2015-08-28
    • 1970-01-01
    • 2018-01-13
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多