我想创建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;
}
}
}
问题是: 如何将模块中的所有处理程序注入此组件? 核心模块不应该知道这些处理程序。