Molto spesso capita di dover creare pulsanti con un HTML complesso per dare la possibilità di aggiungere icone a destra o sinistra del test, per dare uniformità di stile o per aggiungere determinati comportamenti. Per evitare di scrivere codice HTML duplicato per ogni pulsante, possiamo creare un component che al suo interno include tutto il codice HTML e di logica necessario al corretto funzionamento del pulsante.
Il nostro component deve esporre un evento che corrisponde al click del pulsante interno. Se chiamiamo l'evento click, Angular eseguirà l'evento due volte, una per il pulsante e una per il tag che viene renderizzato in HTML per il component.
<!--component-->
<button class="btn btn-primary btn-sm" (click)="bubbleClick($event)">
<i [class]="iconFirst" *ngIf="iconFirst"></i>
<ng-content></ng-content>
<i [class]="iconLast" *ngIf="iconLast"></i>
</button>import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';
@Component({
selector: 'app-button',
templateUrl: './button.component.html'
})
export class ButtonComponent implements OnInit {
@Output() click = new EventEmitter();
bubbleClick(event: Event) {
this.click.emit();
}
}Come detto, in questo caso l'HTML dichiara un evento click per il pulsante dentro il component, e ne dichiarerà un altro per il tag che contiene il component (
bubbleClick(event: Event) {
event.stopPropagation();
this.click.emit();
}Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Rendere le variabili read-only in una pipeline di Azure DevOps
Recuperare le subissue e il loro stato di completamento in GitHub
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Arricchire l'interfaccia di .NET Aspire
Mischiare codice server side e client side in una query LINQ con Entity Framework
Configurare lo startup di applicazioni server e client con .NET Aspire
Recuperare App Service cancellati su Azure
Centralizzare gli endpoint AI Foundry con Azure API Management
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Escludere alcuni file da GitHub Copilot
Utilizzare Hybrid Cache in .NET 9
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Sfruttare una CDN con i bundle di ASP.NET
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Le DirectInk API nella Universal Windows Platform
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Gli oggetti CallOut di Expression Blend 4.0
- Inserire le news di Punto Informatico nel proprio sito


