【发布时间】:2016-11-04 11:17:22
【问题描述】:
在我的应用程序中,我有一个包含两个组件的模块,ListComponent 和 DetailsComponent 以及一个服务 MyModuleService。
当用户访问 ListComponet 时,我从服务器获取列表并将其添加到服务的 List 属性中(然后我将其用作缓存)。
当用户单击列表中的任何项目时,将转到该项目的详细信息页面。
在详细信息组件中,我有下一个和上一个链接的导航,我使用服务的 List 属性来决定下一个和上一个项目。
如果用户返回列表页面,列表将从缓存中呈现,即从服务的 List 属性中呈现。
我的列表组件还有一个搜索表单,允许用户指定搜索条件并从服务器中检索符合该条件的项目。
问题是,如果我导航到没有任何参考上述 MyModule 的任何其他路线,然后返回到列表页面,它不会刷新 MyModuleService,这意味着它没有破坏服务实例。
可能是因为 MyModuleService 被添加到全局依赖注入上下文中。
谁能指导一下,我如何将服务范围限制在一个模块上?这样当我导航到另一条路线时,它会破坏 MyModuleService 实例。
【问题讨论】:
-
我很害怕设计上你不能将 DI 范围限制到单个模块。您可以做的是读取您到达 ListComponent 的路线的 url,并根据此决定是否刷新。