这是用例。
我有一个Angular应用程序可以完成任务并且对于我销售它的大多数客户来说都是“通用的”。 但是,有些客户有特殊需求,我必须能够为我要销售给他们的应用添加一些功能。 当然我不想每次都复制应用程序的代码库,所以我在这里问:有没有办法在现有的核心应用程序中管理插件自定义?
只创建一个适合所有客户的应用程序似乎不可行(当然这将是第一个遵循的路径)。 我对这个主题的看法导致了创建“核心”模块的概念,然后为每个需要先核心的客户创建一个新的应用程序,然后是自定义模块。
像这样的东西
imports: [
CoreAppModule,
CustomizationModule,
],
通过这种方式,解耦将是最佳的,如果我添加的新功能与核心功能分开使用,一切正常,但如果我想覆盖,会发生什么核心模块中的组件?
例如,如果核心模块在按下按钮时显示一个按“Hello”的ButtonComponent,我需要自定义它,添加第二个按钮,显示“嘿!”,我显然会扩展提供的ButtonComponent。但是,如何在第一个调用的地方告诉应用程序使用此组件而不是基本ButtonComponent? 我读到两个具有相同名称的组件不可能存在,Angular会抱怨。
可能通过编程方式使用组件动态注入可以实现某些功能,但它似乎是一种“脏”方式来管理它,我甚至不确定它实际上是否可行。 在这种情况下,是否有某种 覆盖系统 内置到Angular模块/组件/提供程序管理中?