我正在为我的应用程序围绕Angular Material UI创建一个“包装”库,如本文所述:Should you wrap your UI components article
几乎所有的想法是具有一些抽象级别,这将使编写标准UI功能变得更加容易,向UI开发人员隐藏底层实现的细节,并使得无需进行大量代码即可轻松重构大量应用UX成为可能。
我一直坚持的一件事是尝试包装没有自己专用标签但绑定到现有HTML标签的组件,例如MatButton
组件绑定到<button mat-button>
我想创建一个相应的组件<button my-button>
,其行为应与<button mat-button mat-primary mat-raised-button>
完全相同。在Angular 1中,这是微不足道的,但是对于新的Angular,我完全迷失了……请帮助!
这里是代码示例:Stack Blitz Button Example
为您创建了一个分叉的stackblitz。在这里,我正在使用ViewContainerRef
完全替换组件的初始html标签,并使用我们的材质按钮创建新的根视图。请注意,因为在这种情况下,更改检测将成为手动操作。