我试图创建一个自定义按钮组件,并基于一个属性,我需要添加一个特定的类,例如:
<mybutton primary>Primary button</mybutton>
需要将此类添加到此组件:
.primary {
background-color: green;
}
我正在寻找有关如何实现此目的的任何想法或教程
答案 0 :(得分:1)
在下面添加到您的mybutton
组件中:
import { Component, OnInit, Input, HostBinding } from '@angular/core';
...
@Input()
@HostBinding('class')
color = "primary"
这将通过color
输入接受一个值,并将组件的宿主元素的类设置为传递的值。 (默认值为“主要”)
@Input()
color = 'primary';
<button [ngClass]="color">
<ng-content></ng-content>
</button>
这将通过color
输入传递类名,并通过button
设置ngClass
元素的类。
注意:
此外,如果要在组件选择器之间显示文本(例如,问题中的Primary button
),还必须添加:
<ng-content></ng-content>
在您的mybutton
组件html中。
演示:
答案 1 :(得分:1)
在mybutton中添加输入属性className并传递值。
@Input() className: string;
然后将值绑定到mybutton模板中
<div [class] ="className" >Some text</div>