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
Proteggere le risorse Azure con private link e private endpoints
Generare una User Delegation SAS in .NET per Azure Blob Storage
Sfruttare al massimo i topic space di Event Grid MQTT
Ottimizzare le performance usando Span<T> e il metodo Split
Utilizzare l nesting nativo dei CSS
Utilizzare Azure AI Studio per testare i modelli AI
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Migliorare l'organizzazione delle risorse con Azure Policy
.NET Conference Italia 2024
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Definire stili a livello di libreria in Angular