Вы можете сделать что-то вроде этого:
parent.component.ts
import { Component, Output, EventEmitter, Input } from '@angular/core';
@Component({
selector: 'app-parent',
templateUrl: './parent.component.html'
})
export class ParentComponent {
label: string = "Click me"
color: string = "blue" // Or could be a hex color as string
constructor() {}
functioncall(event) {
console.log('functioncall', event);
}
}
parent.component.html
<app-button [color]="color" (onClick)="functioncall($event)" [label]="label"></app-button>
app-buton.component.ts
import { Component, Output, EventEmitter, Input } from '@angular/core';
@Component({
selector: 'app-button',
templateUrl: './button.component.html'
})
export class ButtonComponent {
@Input() color: string;
@Input() label: string;
@Output() onClick = new EventEmitter<any>();
constructor() {}
onClickButton(event) {
this.onClick.emit(event);
}
}
app-buton.component.html
<div id="button">
<button [ngStyle]="{'color': color}" type="button" (click)="onClickButton($event)">
{{ label }} {{color}}
</button>
</div>
Это всего лишь пример, но вы можете использовать компонент app-button и передавать больше параметров цветов или чего-либо еще для стиля и класса, для получения дополнительной информации см .: https://codecraft.tv/courses/angular/built-in-directives/ngstyle-and-ngclass/