angular - 在 Angular 中包装 html 标签绑定(bind)的 UI 组件

标签 angular angular-material angular-material2 angular-components

我正在为我的应用程序围绕 Angular Material UI 创建一个“包装器”库,如本文所述:Should you wrap your UI components article

这个想法几乎是有一点抽象级别,这将使编写标准 UI 功能变得更容易,向 UI 开发人员隐藏底层实现的细节,并且可以轻松地重构大量应用程序 UX 而无需经过大量代码。

我坚持的一件事是试图包装没有自己的专用标签但绑定(bind)到现有 HTML 标签的组件,例如 MatButton绑定(bind)到 <button mat-button> 的组件

我想创建一个对应的组件<button my-button>其行为应与 <button mat-button mat-primary mat-raised-button> 完全相同.这在 Angular 1 中是非常微不足道的,但对于新的 Angular,我完全迷失了......请帮忙!

这是一个代码示例:Stack Blitz Button Example

最佳答案

创建了一个 fork stackblitz为你。
我在这里使用ViewContainerRef完全替换组件的初始 html 标签并使用我们的 Material 按钮创建新的 Root View 。
请小心,因为在这种情况下,更改检测将变为手动。

关于angular - 在 Angular 中包装 html 标签绑定(bind)的 UI 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59017404/

相关文章:

angular - 如何在 Angular 2 模板中获取 localStorage 值

angular - 如何在 JSP 页面中包含 angular2/4 组件?

angular - 中心垫菜单,中心垫菜单覆盖到按钮

javascript - “mat-form-field”不是已知元素

angularjs - Angular Material 接触芯片验证 ng-minlength/maxlength/required

angular - 类型 'forRoot' 上不存在属性 'typeof MdCoreModule'

javascript - 如何检测 Angular 2 中的 URL 变化?

angular - Angular 类的文件类型命名约定

Angular mat-option 多个值

javascript - 显示对话框后如何创建进度条