在我的应用程序中,我有一个包含两个组件的模块,ListComponent和DetailsComponent以及一个服务MyModuleService。Angular 2服务依赖注入问题
当用户访问ListComponet时,我从服务器获取列表并将其添加到服务的List属性(然后我将其用作缓存)。
当用户单击列表中的任何项目时,它将转到该项目的“详细信息”页面。
详细信息组件我使用Next和Previous链接导航,我使用服务的List属性来决定下一个和上一个项目。
如果用户返回到列表页面,则列表将从缓存中呈现,即从服务的List属性中呈现。
我的列表组件还有一个搜索表单,它允许用户指定搜索条件并从匹配该条件的服务器检索项目。
问题是,如果我导航到没有任何引用上面提到的MyModule,然后回到列表页面的任何其他路由,然后回到列表页面,它不刷新MyModuleService,这意味着它没有销毁Service实例。
可能是因为MyModuleService被添加到全局依赖注入上下文中。
任何人都可以请引导,我如何限制服务的范围只有一个模块?所以当我导航到另一条路线时,它会销毁MyModuleService实例。
我很害怕在设计中不能将DI示波器限制为单个模块。你可以做的是读取从你到达ListComponent的路线的URL,并根据这个决定是否刷新。 – Picci