angular - Angular Router,动态参数不允许上述路由工作
问题描述
我试图创建一个期望和参数的页面,但如果我把它放在其他路线下面(例如:登录)它不再打开而是打开动态路线,并且页面需要是:www.website/dynamic-name什么可能导致错误?
应用路由
import { NgModule } from '@angular/core';
import { Routes, RouterModule, PreloadAllModules } from '@angular/router';
import { HomeComponent } from './pages/home/home.component';
...
const routes: Routes = [
{ path: '', redirectTo: '/home', pathMatch: 'full'},
{ path: 'home', component: HomeComponent },
{ path:'login', component: LoginComponent },//--> this one does not open login page, but instead open the below "PharmacyDetailsComponent "
{ path: ':name', component: PharmacyDetailsComponent } , //--> this one opens
但登录页面打不开];
@NgModule({
imports: [
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules, enableTracing: false, useHash: true })
],
exports: [RouterModule]
})
export class AppRoutingModule { }
调用页面
goToSupplierDetail(supplierName: string) {
this.router.navigate([`${supplierName}`],{...});
}
解决方案
我认为您正在尝试导航到其他页面上的动态页面,例如主页或登录。所以你应该使用绝对路径。/
在路由路径之前添加。
this.router.navigate([`/${supplierName}`]);
让我知道它是否有效。否则,您可以使用相对路径。
...
constructor(private route: ActivatedRoute) {}
...
this.router.navigate([`../${supplierName}`], { relativeTo: this.route });
推荐阅读
- angular - Electron-Builder打包后JSON文件的运行时处理
- acumatica - Importing Data GI In web service
- arrays - Change {NULL} in Postgres ARRAY to NULL
- java - Spring @RequestMapping redirect to login
- java - 无法使用 PowerMock 模拟 java.lang.System#exit(int) 方法
- java - 为什么 Windows 在记事本中打开 CSV 而不是 Excel?
- git - How to define Commitizen adapter when using "npx git-cz"?
- conditional-statements - Conditional formatting based on formula addressing current row in LibreOffice Calc
- hibernate - Debugging @Lock in Spring Data JPA
- c# - Set the page number when combining pdf reports on telerik