Angular 11-将具有不同样式的图标添加到自定义按钮组件

Andreivictor

在我的Angular 11 App中,我实现了一个自定义按钮组件。对于样式,我使用TailwindCSS和TailwindUI。

按钮可以有多种颜色(redbluegray等),也不同尺寸(xssmmdlgxl)。

我想为这些按钮创建一个变体:一个带有前导图标的按钮,如下所示:https : //tailwindui.com/components/application-ui/elements/buttons#component-8a4b7248253ad4c9ee892c655d7ff5ec

对于图标,我使用以下库:https : //ng-heroicons.dimaslz.dev/

图标是组件,例如:<mail-solid-icon></mail-solid-icon><bookmark-solid-icon></bookmark-solid-icon>等等。

因为大小不同(的xssmmdlgxl按钮),我需要定制的Tailwind类添加到图标。例如:

<app-button [size]="'xs'">
  <mail-solid-iconclass="-ml-0.5 mr-2" [size]="16"></mail-solid-icon>
  Button text
</app-button>

<app-button [size]="'xl'">
  <bookmark-solid-icon class="-ml-1 mr-3 h-5 w-5" [size]="20"></bookmark-solid-icon>
Button text

所需结果:

我希望仅提供图标组件,然后在按钮的组件类中添加类-ml-0.5 mr-2,或者-ml-1 mr-3 h-5 w-5; 以及size财产。

在模板中使用的示例:

 <app-button [size]="'xl'">
  <bookmark-solid-icon></bookmark-solid-icon>
   Button text
 </app-button>

输出:

<app-button [size]="'xl'">
  <bookmark-solid-icon class="-ml-1 mr-3 h-5 w-5" [size]="20"></bookmark-solid-icon>
   Button text
 </app-button>

我尝试使用自定义指令并使用来获取它@ContentChild,但无法将类添加到其中。

谢谢!

Stackblitz示例:https://stackblitz.com/edit/angular-ivy-6gpcby file = src%2Fapp%2Fbutton%2Fbutton.component.ts

yinnping

这是示例代码,可以帮助您实现所需的操作:https : //stackblitz.com/edit/angular-ivy-xymefd?file=src%2Fapp%2Fbutton%2Fbutton.component.ts

我从您的代码中更改的是:

  1. 添加ButtonIconDirective到AppModule声明。
  2. 使用appButtonIcon代替docsButtonIcon
  3. 注入ElementRefButtonIconDirective(我们将在中使用ElementRef ButtonComponent)。
  4. 将模板变量附加到<bookmark-solid-icon>以获得其组件实例。
  5. 重写ngAfterContentInitButtonComponent方法来更新size和在运行时添加新的CSS类:
public ngAfterContentInit(): void {
  console.log( 'this.icon: ', !!this.icon);
  
  if (this.icon) {

    // reference to ng-heroicons component source code
    this.icon.style = '';
    this.icon.size = 50;     
    this.icon.renderStyle(); 

    this.renderer.addClass(this.iconi.er.nativeElement, '-ml-1');
    this.renderer.addClass(this.iconi.er.nativeElement, 'mr-3');
    this.renderer.addClass(this.iconi.er.nativeElement, 'h-5');
    this.renderer.addClass(this.iconi.er.nativeElement, 'w-5');      

    console.log(this.icon.style);
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular Google Map的自定义样式

来自分类Dev

Angular指令-如何使用JQuery将ngModel和ngBind添加到自定义指令元素?

来自分类Dev

使TextView使用具有不同样式(常规和斜体)的自定义字体

来自分类Dev

将类添加到具有angular且没有jquery的指令内的元素中

来自分类Dev

Angular / Valdr-将自定义类添加到valdr-form-group

来自分类Dev

Angular 2将控件添加到父组件的窗体

来自分类Dev

Angular 11中的Errro add组件

来自分类Dev

单击angular2中的按钮将组件添加到dom

来自分类Dev

Angular:将自定义HTTP响应标头添加到dev`ng serve`

来自分类Dev

将自定义类型添加到Angular

来自分类Dev

如何将字母间距添加到输入值而不是输入占位符(Angular 11)

来自分类Dev

Angular 11中的“没有重载匹配此调用”

来自分类Dev

将autoprefixer与angular11一起使用

来自分类Dev

我无法将参数传递给变量未定义的函数,Angular 11

来自分类Dev

我无法将参数传递给变量未定义的函数,Angular 11

来自分类Dev

Angular 11中的Errro add组件

来自分类Dev

将自定义样式的按钮添加到CKEditor

来自分类Dev

将图标添加到TinyMCE自定义菜单

来自分类Dev

Angular:通过控制器将自定义脚本/ css添加到局部

来自分类Dev

将图标添加到自定义操作栏

来自分类Dev

使TextView使用具有不同样式(常规和斜体)的自定义字体

来自分类Dev

如何将按钮图标添加到自定义键盘iOS 8?

来自分类Dev

将样式添加到自定义菜单

来自分类Dev

将项目添加到自定义组件的布局

来自分类Dev

如何在Angular2清晰度图标中添加自定义图标?

来自分类Dev

将图标添加到具有自定义样式的按钮

来自分类Dev

如何将 CSS 添加到 Angular Materials 组件?

来自分类Dev

单击 Angular 将按钮内容添加到数组

来自分类Dev

Angular 11 - 如何使用 Angular Material 设置文件输入按钮的样式

Related 相关文章

  1. 1

    Angular Google Map的自定义样式

  2. 2

    Angular指令-如何使用JQuery将ngModel和ngBind添加到自定义指令元素?

  3. 3

    使TextView使用具有不同样式(常规和斜体)的自定义字体

  4. 4

    将类添加到具有angular且没有jquery的指令内的元素中

  5. 5

    Angular / Valdr-将自定义类添加到valdr-form-group

  6. 6

    Angular 2将控件添加到父组件的窗体

  7. 7

    Angular 11中的Errro add组件

  8. 8

    单击angular2中的按钮将组件添加到dom

  9. 9

    Angular:将自定义HTTP响应标头添加到dev`ng serve`

  10. 10

    将自定义类型添加到Angular

  11. 11

    如何将字母间距添加到输入值而不是输入占位符(Angular 11)

  12. 12

    Angular 11中的“没有重载匹配此调用”

  13. 13

    将autoprefixer与angular11一起使用

  14. 14

    我无法将参数传递给变量未定义的函数,Angular 11

  15. 15

    我无法将参数传递给变量未定义的函数,Angular 11

  16. 16

    Angular 11中的Errro add组件

  17. 17

    将自定义样式的按钮添加到CKEditor

  18. 18

    将图标添加到TinyMCE自定义菜单

  19. 19

    Angular:通过控制器将自定义脚本/ css添加到局部

  20. 20

    将图标添加到自定义操作栏

  21. 21

    使TextView使用具有不同样式(常规和斜体)的自定义字体

  22. 22

    如何将按钮图标添加到自定义键盘iOS 8?

  23. 23

    将样式添加到自定义菜单

  24. 24

    将项目添加到自定义组件的布局

  25. 25

    如何在Angular2清晰度图标中添加自定义图标?

  26. 26

    将图标添加到具有自定义样式的按钮

  27. 27

    如何将 CSS 添加到 Angular Materials 组件?

  28. 28

    单击 Angular 将按钮内容添加到数组

  29. 29

    Angular 11 - 如何使用 Angular Material 设置文件输入按钮的样式

热门标签

归档