angular - 路由器使用角度 7 导航
问题描述
我有一个关于在我的代码中某处使用角度导航的问题
this.router.navigate([12345678 + '/data']);
在我的 app-routing.module
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),它就会传入订阅
2个电话有什么区别?为什么我使用导航时它不通过订阅?
解决方案
最佳实践
您还需要与路由一起定义模块名称。如果仅在根模块中应用路由,则路由中不需要模块名称,但是在不同的模块中路由时,通过定义模块名称来导航,我们需要路由,然后是路由。
例如:有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/']);
推荐阅读
- speech-to-text - 用于自定义域的 SFSpeechRecognizer?
- javascript - 如何将有效负载数组更改为 Node Red 中的有效负载对象?
- ruby-on-rails - 需要为每个新版本或应用程序安装 rails 吗?
- c++ - 使用“多个”命名空间单行
- react-native - React Native Expo Video av-expo -- 直接全屏播放
- git - 有没有办法检查远程 git repo 是否有更改,而无需实际获取更改?
- asp.net-mvc - Application Insights - 应用程序映射缺少传入请求节点
- powershell - 在外部窗口中操作 Afx OLE 控件
- sql - 如何使 MSSQL 忽略用户正在给予的价值中的“'”?
- javascript - argMax 将数组作为轴做什么?