使用 PreLoadingStrategy 在启动时触发 AngularComponent-constructor

Trigger AngularComponent-constructor on startup with PreLoadingStrategy

目标:触发驻留在模块中的组件,因此我在组件构造函数中的订阅被激活。 我使用 PreloadAllModules 作为预加载策略。但这并没有发生。

我需要在 FriendsComponent 的构造函数中订阅一些事件。 设置是这样的:

FriendsComponent 显示在 SocialComponent 的模板中,它是 SocialModule 的一部分。

social.component.html

<div>
    <friends-component></friends-component>
</div>

SharedModule 声明了 FriendsComponent。 AppModule 导入 SharedModule, AppModule 的 RouterModule 是这样的:

  {
    path: 'social',
    component: SocialModule, 
    children: [
      { 
        path: 'friends',
        component: FriendsComponent 
      }
    ]
  },

我认为问题是因为 FriendsComponent 不是路由器插座的一部分? 没有路由器插座可以做到吗?

如果预加载或预先加载模块,它会自动触发构造函数(和订阅)吗? 我的预加载策略有问题吗?

我尝试将:data:{preload:true} 添加到路由器模块中声明的路径中。

一切正常,当用户激活 SocialModule 时(例如通过点击一个带有 routerLink 的按钮到 social/friends),但我希望它在启动时激活(只是没有显示在任何 html) 我正在与 Angular Ivy 合作,但我认为我仍然遗漏了要点。感谢任何帮助

您需要处理服务中的初始订阅并让组件订阅该服务。您无需触摸路线。这就是服务的用途。

您在 FriendService 中订阅了您需要的值,并让 FriendComponent 订阅了您的 FriendService。