angular - 从另一个模块访问路由参数

标签 angular angular2-routing

我的应用程序中有一个没有路由模块的核心模块和一个带有路由模块的功能模块。在我的功能模块的组件中,我可以通过在构造函数中使用它来访问路由参数:

this.route.params.subscribe((params: Params) => {
  console.log("params['searchTerm']");
  console.log(params['searchTerm']);
  this.searchTerm = params['searchTerm'];
});

现在,在我的核心模块的组件中,我也想使用上面的代码来访问参数。由于路由是在功能模块路由模块中定义的,当我尝试访问参数时,我只是得到了未定义的信息。

我怎样才能访问参数?

最佳答案

这是可能的解决方案之一:

constructor(private route: ActivatedRoute, private router: Router) {
  router.events.subscribe((e) => {
    let currentRoute = this.route.root;
    while (currentRoute.children[0] !== undefined) {
      currentRoute = currentRoute.children[0];
    }
    if (e instanceof NavigationEnd) {
      // you can do it for exact phase
      console.log(currentRoute.snapshot.params);
    }
  });
}

关于angular - 从另一个模块访问路由参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42692359/

相关文章:

Angular 2 组件少路由,在匹配特定 URL 时执行任何逻辑并进一步重定向

用于页眉和页脚的 Angular 2 功能模块

angular - Angular Guard 可以阻止管理面板服务器端吗?

javascript - 使用 Angular 2 进行子路由

angular - 使用 Angular 库作为 git 依赖项

angular - 如何在 chrome 浏览器中调试 nativescript 应用程序并在 chrome 中查看输出

javascript - 从下拉列表中选择一个项目将所有下拉列表设置为相同

javascript - Angular 2 : provide current route to parent component

Angular 2路由重定向到子路由

angular - 使用仅获取一个对象的 AngularFire2 查询查询 Firebase