浏览Angular的文档,特别是风格指南,他们列出了一个共享模块和一个核心模块。根据文档,服务应该放在核心模块中,组件应该放在共享模块中。我的问题是,如果我有一个组件,比如说一个自定义文件上传组件,它也有一个相应的服务,那么这个组件和服务应该驻留在哪里?将两者放在一起似乎是有意义的,因为服务是与组件一起使用的,然而,这似乎并不遵循Angular标准。有人遇到过这个问题吗?
发布于 2018-08-31 04:03:02
根据Angular Style Guide,Angular并不推荐在SharedModule
中提供服务。这样做的原因是,无论哪个模块导入SharedModule
,都将获得该共享服务的单独实例。在有状态服务的情况下,这是不能接受的。但在您的情况下,我不太确定Service是否会包含任何状态数据。所以我认为,将这个组件和这个服务添加到SharedModule本身对您来说应该是安全的。
同样,考虑到此服务将不会有任何状态数据。
此外,Angular还建议在CoreModule
中提供服务,因为它还建议仅通过单个模块(通常是AppModule
)导入CoreModule
。这就是为什么它还建议使用creating a Guard来防止重新导入CoreModule。
https://stackoverflow.com/questions/52104459
复制相似问题