Angularjs 跨多个文件分离单个角度服务

Angularjs 跨多个文件分离单个角度服务,angularjs,typescript,gruntjs,Angularjs,Typescript,Gruntjs,对于上下文,我们对服务器使用c#,对客户端使用typescript,并使用grunt构建客户端(而不是visualstudio默认编译器) 我们希望在VisualStudio解决方案中的两个项目之间分解一些角度服务,使用grunt将所有文件放在一起。 目前的结构如下: 项目A 应用程序 Externals(我们在这里复制来自project Common的所有定义文件和js文件) 命令 orders.index.ts 服务 ordersService.ts 订单.服务.索引.ts

对于上下文,我们对服务器使用c#,对客户端使用typescript,并使用grunt构建客户端(而不是visualstudio默认编译器)

我们希望在VisualStudio解决方案中的两个项目之间分解一些角度服务,使用grunt将所有文件放在一起。 目前的结构如下:

项目A

  • 应用程序
    • Externals(我们在这里复制来自project Common的所有定义文件和js文件)
    • 命令
      • orders.index.ts
      • 服务
        • ordersService.ts
        • 订单.服务.索引.ts
项目B

  • 应用程序
    • Externals(我们在这里复制所有来自project Common的定义文件和js文件)
    • 。。。(没有特定的OrderService)
公共项目

  • 应用程序
    • 命令
    • orders.index.ts
    • 服务
      • ordersService.ts
      • 订单.服务.索引.ts
我们在项目Common内的ordersService.ts中定义了服务ordersService,因为该服务的方法由项目A和项目B使用。 但是在项目A中,我们需要仅由项目A使用的附加操作,因此我们希望在项目A中扩展服务

目前,唯一的结果是project A文件被project Common中的文件覆盖。那么,是否有可能扩展角度服务?如果有,如何扩展

编辑:

更清楚地说,举个例子:

module Orders {

export interface IOrdersResourceClass extends ng.resource.IResourceClass<Common.IEmptyResource> {
    listAllOrders(success: (orders: Order[]) => void, error?: Function): void;
    getOrder(success: (order: order[]) => void, error?: Function): void;
}

angular
    .module("prefix.orders.resources")
    .factory("ordersRsc",
    ['$resource', ($resource: ng.resource.IResourceService): IOrdersResourceClass => {

        var listAllOrders: ng.resource.IActionDescriptor = {
            method: 'GET',
            url: Common.RestServicesAddresses.Order + '/years',
            isArray: true,
        };
来自项目A的OrderService

想法是在任何地方使用“ordersRsc”,但只在项目A中扩展它。

这可能会有所帮助这可能会有所帮助
module Orders {

export interface IOrdersResourceClass {
    changeOrder(success: () => void, error?: Function): void;
}

angular
    .module("prefix.orders.resources")
    .factory("ordersRsc",
    ['$resource', ($resource: ng.resource.IResourceService): IOrdersResourceClass => {

        var changeOrder: ng.resource.IActionDescriptor = {
            method: 'GET',
            url: Common.RestServicesAddresses.Order,
            isArray: true,
        };