我有一个关于角导航的问题在我的代码中,我有
this.router.navigate([12345678 + '/data']);
在我的应用程序例程模块中
path: ':nossnbr/data',
component: DataComponent,
},
在我的组件DataComponent中(在NgOnInit中(
ngOnInit() {
this.routerSubscription = this.activatedRoute.params.subscribe(params => {
// .... do something
});
}
导航(this.router.navigation([12345678+'/data'](;(不起作用。什么都没有发生,我们没有通过订阅
另一方面,如果我在浏览器中直接键入url(localhost:4200/12345678/data(,它就会传入订阅
这两个电话有什么区别?为什么我使用导航时它不通过订阅?
最佳实践
您还需要定义模块名称和路由。如果只在根模块中应用路由,那么路由中不需要模块名称,但在不同的模块中,路由是通过定义模块名称来导航的,我们需要在路由后面跟着路由。
例如:有两个模块:应用程序和主页模块,我们在主页路由模块中定义了一条路由,即/仪表板。
在根/应用程序路由模块中定义模块路由,如:
path: 'home-module',
loadChildren: () => import('./home/home.module').then(m =>
m.HomeModule)
},
在家庭模块的组件.ts中,我们将定义路由,如:
this._router.navigate(['./home-module/dashboard/']);
当你使用路由器导航时,你的url是什么?
如果不是localhost:4200,则需要将导航url编辑为:
this.router.navigate([12345678, 'data'])