我有一个关于角度导航的问题 我的代码中的某处
this.router.navigate([12345678 + '/data']);
在我的应用程序路由模块中
path: ':nossnbr/data',
component: DataComponent,
},
在我的组件DataComponent中(在NgOnInit中)
ngOnInit() {
this.routerSubscription = this.activatedRoute.params.subscribe(params => {
// .... do something
});
}
导航(this.router.navigate([12345678 +'/ data']);)不起作用。什么都没有发生,我们不进行订阅
另一方面,如果我在浏览器中直接键入url(localhost:4200/12345678 / data),则会在其中传递订阅
两个通话之间有什么区别?为什么当我使用导航时,它不通过订阅?
答案 0 :(得分:0)
最佳做法
您还需要定义模块名称以及路由。如果仅在根模块中应用路由,则路由中不需要模块名称,但是在不同模块路由中,通过定义模块名称来导航,我们需要先路由,然后路由。
例如: 有2个模块:app和home模块,我们在home路由模块中定义了一条路由,即/ dashboard。
在root / app路由模块中定义模块路由,例如:
path: 'home-module',
loadChildren: () => import('./home/home.module').then(m =>
m.HomeModule)
},
在home模块的.ts中,我们将定义路由,例如:
this._router.navigate(['./home-module/dashboard/']);
答案 1 :(得分:0)
当您使用路由器导航时,您的网址是什么?
如果不是 localhost:4200 ,则需要将navigatie-url编辑为:
this.router.navigate([12345678, 'data'])