目前,我在服务目录中拥有所有服务,并且多个组件依赖于它们,并且一个服务依赖于另一个服务,依此类推。服务和组件的依赖关系图看起来很疯狂。由于这种情况,在某些情况下,当尝试将一个服务注入另一个服务时,我得到DI错误。以下是我的一个情况样本:
import {stuff} from 'stuffs';
@Injectable()
export class ApiService
{
getData(): Observable<string>{
return this.http.get(url).map(v => v.json());
}
}
@Injectable()
export class SomeService
{
constructor(private apiService: ApiService){
}
}
@Component()
export class SomeComponent
{
constructor(private apiService: ApiService,
private someService: SomeService){
}
}
我没有找到任何推荐的组织服务模式,因此在编写了大量代码后,我要求提供一些指导,指导我找到正确的方向并重构它。
答案 0 :(得分:3)
角度2网站上有一个样式指南:https://angular.io/docs/ts/latest/guide/style-guide.html#!#application-structure
使用文件名进行描述,并将文件的内容保留为一个组件。
避免使用包含多个组件,多个服务或混合的文件。
为什么呢?我们花更少的时间寻找和啄食代码,并且变得更有效率。如果这意味着我们需要更长的文件名,那就这样吧。
但也在小记上说:
当我们有一组非常小的特征相互关联时,每个文件规则有1个偏差,因为它们仍然很容易识别。
还有一个整体文件夹和文件结构指南以及更多您可能会发现有趣内容的指南。
根据其他服务,查看服务答案:https://stackoverflow.com/a/33979228/5706293