哪些@angular/* 包与功能请求相关?
核心
描述
Angular最近增加了对组件子类化的支持。因此,现在一个下游应用程序可以覆盖一个库中组件的基本实现。根据我读到的文档,你所要做的就是声明相同的selector
。不幸的是,子类需要template
或templateUrl
--如果没有它,我会得到这个错误:
error NG2001: component is missing a template
我的应用程序代码无法访问库的模板文件(通过templateUrl
声明),恕我直言,如果我不想替换它(但继承了它在超级组件中的方式),我不应该被迫重新声明模板。
component-class包含UI逻辑。它应该很容易让downstream-lib/-app自定义此逻辑,即覆盖protected/public方法,而不涉及UI(即不重新声明模板)。
建议的解决方案
使@Component(...)
注解的template
和templateUrl
对于组件子类是可选的。组件子类应该能够很容易地覆盖UI逻辑,而不需要提供自己的模板。
考虑的替代方案
我们试图将UI逻辑从组件中提取到一个有状态的服务中,该服务与其组件是一对一关联的。然而,这也不起作用--因此,我打开了另一个特性请求:#47899的最大值
2条答案
按热度按时间vqlkdk9b1#
我终于找到了时间来测试覆盖一个组件(之前我只是读到它)。我认为它会这样工作:
上游库
组件
模块
下游库/应用程序
组件
模块
不工作😢
我仍然看到“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
如果还不支持,我在此扩展我的feature-request😏在downstream-lib(或-app)中应该可以通过声明相同的选择器来替换upstream-component。最下游的声明应该获胜--就像服务提供者的声明一样。
qncylg1j2#
此功能请求现在是我们积压工作的候选项!在下一阶段,社区有60天的时间进行赞成票投票。如果该请求收到的赞成票超过20票,我们将把它移到考虑列表中。
您可以在我们的文档中找到有关功能请求过程的更多详细信息。