如何在另一个功能模块中访问服务?

时间:2017-10-17 13:17:52

标签: javascript angular typescript

我正在使用Angular 2/4。我有功能模块,包括与该功能相对应的所有内容。例如,我有一个建筑模块和一个客户端模块。

Example of folder structure for Building Module

这与我的客户端功能模块的结构基本相同。

现在在我的Building模块中,我需要访问ClientService,因为我需要一个与Building相关联的Clients列表。我可以像这样导入客户服务吗?

     import { BuildingService } from "../buildingservice";
     import { ClientService } from "../../client/clientservice";

    @Component({
      selector: 'building-detail',
      templateUrl: './building-detail.component.html',
      providers: [BuildingService, ClientService]
    })

     export class BuildingDetailComponent extends ComponentBase {

      constructor(private buildingService: BuildingService, private clientService: ClientService) {
    super();
}
  }

如果我将ClientService放在SharedServices文件夹中会不会更好?

2 个答案:

答案 0 :(得分:1)

如何整理代码完全取决于您。通过错综复杂的路径导入模块没有任何问题。

如果某些代码在非常远的模块之间共享,那么在代码的组织方式中反映它可能是有意义的。这样一个重命名的东西,以及#34;共享"并将其放在更高的目录中。但是,你再次决定:)

答案 1 :(得分:0)

要使服务正常工作,它应该只添加到您选择的任何模块的providers数组中,因为它实际上取决于您希望如何构建项目,因为这对功能没有任何影响。

该服务将在您向服务器注入的任何组件中工作,无论它是在构建模块还是客户端模块中注册。