Angular,访问服务中的路由器参数

Angular, accessing router params in a service

我们有一个菜单对象(菜单存储),几个组件将使用它来填充数据。

加载页面时,我希望从服务器加载菜单并将其公开为商店

private subject = new BehaviorSubject<Menu>(state);
private menuStore = this.subject.asObservable().filter((m) => m != undefined).distinctUntilChanged();

然后每个组件得到结果

    menu$ = this.menuStore.select<MenuItem>('menu');

所以我的问题是...目前我们在 "menuService" 的构造函数中执行操作。据我了解,这并不是真正的最佳实践,因为它不受 Angulars 控制(?)。

那么我们应该怎么做呢?我们应该在 menu.store.ts 中使用 "implements OnInit" 吗?或者在构造函数中执行此操作是否有效且可以,这是否会给我们带来问题?

我最终创建了 "PageComponents" 并在这些组件中订阅了

this.route.params.subscribe((params: Params) => {
  this.menuService.setActiveItem(params.id)
})