italia / design-angular-kit

Il toolkit Angular conforme alle linee guida di design per i servizi web della PA.
https://italia.github.io/design-angular-kit
BSD 3-Clause "New" or "Revised" License
70 stars 30 forks source link

Dropdown item: lanciare una funzione anzichè aprire un href o un link esterno #390

Open smartm0use opened 1 week ago

smartm0use commented 1 week ago

Esiste già una discussione sul tema che ti interessa, o su un tema simile?

Versione della libreria

1.0.3

Cosa

Ho una dropdown in cui al click su un item vorrei lanciare una funzione, ma a quanto vedo dalle API è possibile solo passare un link del router di Angular (tramite href) oppure aprire un link esterno (tramite externalLink).

Non c'è un modo per dirgli di lanciare una funzione?

Perché

Non l'ho capito io oppure manca questa possibilità? Potrebbe tornare utile ad altri.

Contesto

Sto sviluppando un'app basata su Angular 17.

Altro

No response

astagi commented 1 day ago

Ciao @smartm0use hai provato ad aggiungere una funzione sull'evento click?

        <it-dropdown-item
          (click)="myFunction('hello!')">
          Testo
        </it-dropdown-item>
smartm0use commented 1 day ago

Ovviamente sì, ma ero alla ricerca di un parametro tipo action a cui passare una funzione, senza ricorrere all'evento click.

Esempio:

<it-dropdown-item
    [action]="myFunction">
    Testo
</it-dropdown-item>
astagi commented 17 hours ago

Ovviamente sì, ma ero alla ricerca di un parametro tipo action a cui passare una funzione, senza ricorrere all'evento click.

Esempio:

<it-dropdown-item
    [action]="myFunction">
    Testo
</it-dropdown-item>

Su questo @smartm0use bisogna fare una modifica ad hoc, però l'evento scatenate di questa funzione dovrebbe essere proprio il click giusto?

smartm0use commented 16 hours ago

Mi trovo in una situazione in cui il dropdown è incastonato nell'header in cui c'è già il bind ad un evento click (al posto di slimTitleLink) e quindi cliccare sull'item della dropdown triggera anche il click dell'header. I vari preventDefault() e stopPropagation non funzionano.