eventi angularjs per l'avvio delle modali [chiuso]

-1

Voglio poter avviare finestre modali da diverse parti della mia applicazione angolare per visualizzare o modificare il contenuto senza cambiare stati / URL.

Il mio attuale approccio è quello di creare un modulo per ogni modale e nel metodo run (), aggiungere un $ rootScope. $ su listener. Posso quindi emettere $ da qualsiasi punto dell'app e passare una funzione di callback per quando la modal ha finito di fare la cosa per l'oggetto che $ emesso per aggiornarsi, se necessario. Capisco che potrei anche usare le promesse invece dei callback.

Non mi interesso tanto delle callback / promesse, ma più del fatto che sto usando $ scope e $ rootScope per inviare ed ascoltare eventi. C'è un modo migliore per farlo, come avere una sorta di servizio di invio di eventi centrale, o è solo reinventare ciò che già esiste in $ rootScope?

Qualcuno può fornire esempi di un buon approccio?

    
posta the-a-train 22.05.2015 - 04:03
fonte

1 risposta

0

Penso che il modo più semplice sia emettere eventi, puoi farlo usando un servizio per astrarre questo comportamento, questo servizio farà 3 cose:

  • $emit l'evento
  • aggiungi un $q.defer() a $ emit
  • restituisce un defer.promise al chiamante

In questo modo è trasparente per il chiamante ma l'ascoltatore dell'evento deve resolve o reject l'evento con il corrispondente result o reason

Aggiorna

Qui è un esempio funzionante, che utilizza un servizio eventEmitter , e un eventListener moduli, ma probabilmente dovrebbe essere più modulare questa separazione, altrimenti si finirà con un singolo modulo che gestisce tutto il listener per l'intera applicazione

    
risposta data 22.05.2015 - 04:11
fonte

Leggi altre domande sui tag