如何从Angular2中的各个模块注入类列表?

时间:2016-06-04 15:28:09

标签: angularjs dependency-injection typescript angular

我想创建Angular 2 Modular应用程序。所有模块都是独立的,但它们不具备完全独立的功能。我有依赖注入的一些问题,我不知道如何正确设计它。

示例代码: 每个模块都是为另一台设备(手机,平板电脑,个人电脑)创建的。 例如,它们中的每一个都具有如下所示的处理程序:

@Injectable
export class PcDeviceHandler
  canHandle(type) : boolean
  { 
    return type == "pc";
  }
  handle(args)
  {
    //do something
  }
}

核心模块包含支持设备列表的组件。

@Component([ ... ])
export class SupportedDevicesCmp
{
  handlers = [];
  handleDevice(args, deviceType)
  {
    for(let handler of this.handlers){
      if(handler.canHandle(deviceType))
      {
        handler.handle(args);
        break;
      }
  }
}

问题是: 如何将模块中的所有处理程序注入此组件? 核心模块不应该知道这些处理程序。

0 个答案:

没有答案