浏览 Angular 的文档,特别是样式指南,他们列出了共享模块和核心模块。根据文档,服务应放置在核心模块中,组件应放置在共享模块中。我的问题是,如果我有一个组件,例如自定义文件上传组件,并且它还有相应的服务,那么该组件和服务应该驻留在哪里?将两者放在一起似乎是有意义的,因为服务与组件一起使用,但是,这似乎不遵循 Angular 标准。有人遇到过这个问题吗?
最佳答案
根据 Angular 风格指南,Angular 并不真正建议在 SharedModule
中提供服务。原因是,无论哪个模块导入 SharedModule,都将获得该共享服务的单独实例。对于有状态服务来说,这是 Not Acceptable 。但就您而言,我不太确定该服务是否包含任何状态数据。所以我认为,将此组件和此服务添加到 SharedModule 本身应该是安全的。
再次考虑到该服务不会有任何状态数据。
此外,Angular 建议在 CoreModule
内提供服务,因为它还建议使 CoreModule
只能由单个模块(通常是 AppModule
)导入>)。这就是为什么它还推荐 creating a Guard以防止重新导入 CoreModule。
关于javascript - Angular 5 全局组件及其服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52104459/