Attualmente sono su un progetto angolare 1.x e stiamo per aggiungere interazioni utente che causeranno modifiche ai dati.
Abbiamo già identificato alcuni flussi nella nostra app che sembrano risolvere il flusso, quindi utilizzeremo il flusso.
Non conosciamo ancora il flusso e le librerie esistenti oggi sembrano eccessive.
Abbiamo un'idea su come implementarlo facilmente e vorremmo sentirti se
- Questa è davvero un'architettura di flusso che stiamo costruendo
- Se il design suggerito causerà problemi che non possiamo vedere ora
- Se c'è una libreria che già la implementa in questo modo ci siamo persi
L'idea
Punto iniziale:
- Vorremmo avere una struttura molto simile a quella angolare senza flusso.
- Un'interazione direttiva chiamerà un servizio.
- Il servizio chiamerà il back-end e restituirà una promessa
- Tutti i nostri collegamenti sono a senso unico ('<', '&')
Cambiamenti di flusso:
-
I servizi
- avranno un meccanismo di registrazione degli eventi (sottoscrivi / disiscrivi).
- la direttiva che ha attivato il servizio si limiterà a consumare errori se si verifica una risposta di risposta. Il servizio
- invierà l'evento in caso di successo. Le direttive
- si iscriveranno agli eventi dei servizi
- così una direttiva padre può applicare il cambiamento di stato e le direttive dei bambini verranno aggiornate con un binding in un modo.
Questa è una descrizione di alto livello di come vorremmo aggiungere flusso al nostro sistema. Ci sono altri dettagli di implementazione a grana fine che sembrano troppo prolissi per questa domanda, come il modo in cui verrà implementato il meccanismo di sottoscrizione / annullamento dell'iscrizione, ma facci sapere se sono effettivamente pertinenti.
Soluzione temporanea
Per ora sto solo usando una semplice implementazione del flusso unidirezionale.
Fondamentalmente le direttive espongono le associazioni di funzioni come onItemChange: '&'
e alcune direttive root per la pagina sono incaricate di gestire le operazioni e la manipolazione dei dati (direttamente o con un servizio).
Quindi è abbastanza semplice, molto angolare, e abbastanza buono per ridimensionare il codice.