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
Testare l'invio dei messaggi con Event Hubs Data Explorer
Creare una libreria CSS universale: i bottoni
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Proteggere le risorse Azure con private link e private endpoints
Gestione file Javascript in Blazor con .NET 9
Creare un webhook in Azure DevOps
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Introduzione alle Container Queries
Gestire gli accessi con Token su Azure Container Registry
Migliorare la sicurezza dei prompt con Azure AI Studio
Creare una libreria CSS universale: Cards
Gestione CSS in Blazor con .NET 9
I più letti di oggi
- a #RealCodeConf4 il 25 maggio a Firenze parleremo di #silverlight4. iscrizioni gratis su http://u.aspitalia.com/g9
- #HTML5 schema per avere l'intellisense su #VS2008 (anche express) http://u.aspitalia.com/ed
- Parallelizzare le chiamate HTTP con async/await e le Promise in JavaScript
- Rendere sicuro l'endpoint di HealthCheck in ASP.NET Core
- prime app per #wp7summer. vuoi fare strada con #wp7? 5 app e partecipi alla nostra nuova competition: http://aspitalia.com/yu #wp7dev
- disponibile #azure sdk 2.1, con supporto a #vs13 e nuovi tool per #vs12: https://aspit.co/ans