使用 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。
目标:触发驻留在模块中的组件,因此我在组件构造函数中的订阅被激活。 我使用 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。