【问题标题】:Angular5: Router param with regexAngular5:带有正则表达式的路由器参数
【发布时间】:2018-03-21 14:08:35
【问题描述】:

我想在同一条路线上有两个组件。一个是最后有“-offer”。两条路线都具有动态 url 参数。

下面是一个例子。

  1. domain/student/books-offer -- 图书报价组件
  2. domain/student/exam1 -- 到考试页面

我使用 urlMatcher 尝试了不同的解决方案,但没有任何效果。我想给出两个不同的路由器组件。低于我试图在 app.routes 中给出但没有奏效的内容。

{ path: 'student/:id["-offers"]', loadChildren: './student-offers/student-offers.module#StudentsOffersModule' },
{ path: 'student/:id', loadChildren: './students-exams/students-exams.module#StudentsExamModule' },

【问题讨论】:

  • 你能用吗?{ path: 'student/:id/offers, ...} //example domain/student/type/offers { path: 'student/:id',... } //示例域/学生/类型

标签: angular angular5 angular-routing


【解决方案1】:

它不起作用,因为你做错了。

{ path: 'student/:item/offers', loadChildren: './student-offers/student-offers.module#StudentsOffersModule' },
{ path: 'student/exam/:id', loadChildren: './students-exams/students-exams.module#StudentsExamModule' },

当您尊重约定和语法时,它会起作用。

顺便说一句,这是一种延迟加载策略,而不是路由策略。所以不要指望它会起作用。

【讨论】:

  • 感谢您的回答。但这不是我想要的。
  • 正如我所说的 book 是动态的,exam1 也是动态的。可能的 url 可以是 .笔记本电脑优惠,移动优惠,exam1,exam2。所有人都应该来自 /student/
  • @Shabbir,你不能。对于 Angular 来说,/student/what-ever 是一样的。您可以使用 StudentsOffers 和 StuddensExam 的组件父级,并使用 *ngIf 使一个或另一个可见,具体取决于 Router.path
猜你喜欢
  • 2014-10-30
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多