angular - 将类添加到基于输入属性的组件的最佳方法是什么?
问题描述
我正在尝试创建一个自定义按钮组件并基于一个属性,我需要添加一个特定的类,例如:
<mybutton primary>Primary button</mybutton>
需要在这个组件中添加这个类:
.primary {
background-color: green;
}
我正在寻找关于如何制作这个的任何想法或教程
解决方案
- 当您需要在组件宿主元素上设置类时
在您的组件中添加以下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 中。
演示:
推荐阅读
- jquery - jQuery 选择器 - 选择以相同数字结尾的类的元素
- google-apps-script - 只有一个 TRUE 复选框
- spring - Spring Autowired 共享队列 NullPointerException
- reactjs - 动态添加新组件
- c# - 无法通过 Flurl 发布附件错误 411 长度要求
- python-3.x - for循环不在并行代码中异步执行
- mysql - 空值,但如果重复则保留该行(MySQL)
- r - 如何找到 betareg 包接受的最小浮点值?
- angular6 - 在 Angular X 项目中集成引导程序
- microdata - 这种结构化数据的使用与 JSON-LD 不兼容吗?