Ho appena iniziato un nuovo progetto. Sto costruendo un'applicazione web "con funzionalità nativa", che verrà eseguita su un dispositivo controllato a distanza in un browser a schermo intero (nessuna barra degli indirizzi, risoluzione fissa). L'interfaccia utente consiste fondamentalmente in più visualizzazioni a schermo intero. AngularJS è attualmente l'arma preferita per molteplici ragioni. Ho provato 'ui-router' e i suoi 'stati' per costruire le diverse visualizzazioni. Ad esempio:Alternative a ui-router AngularJS
/#/desktop
/#/menu
/#/videoStore/posterView
/#/videoStore/listView
Mi piace molto avere un modello, un controller e un URL per visualizzazione. Il fatto che la pagina non si ricarichi quando si cambiano le viste è fondamentale. Tuttavia, ci sono alcune cose che mi mancano.
doppio buffer
voglio essere in grado di preparare la prossima Stato/vista prima di passare ad esso. ui-router offre una serie di eventi che saranno non fare. onEnter
, $stateChangeStart
e $stateChangeSuccess
vengono tutti chiamati prima che lo state/view controller
sia stato creato. Preferirei questi eventi in cui si chiamava su il controller prima della transizione. Ad esempio onStart
al primo avvio e onResume
in ripresa.
comportamento Storia
Lo Stato sembra essere ricostruito ogni volta che entro in esso, il che significa che il modello è di nuovo aggiunto al DOM e un nuovo controller viene creata un'istanza. Questo non è necessario e dovrebbe uccidere le prestazioni. Non è necessario ricostruire il menu quando si lascia il video store. Infatti, voglio essere in grado di averlo esattamente uguale, concentrandomi sullo stesso oggetto in sottocartelle e così via senza doverlo ricreare.
Keyhandling
non ho capito come fare che i codici di andare a destra Stato/vista o di visualizzazione secondaria sia. Stavo considerando l'aggiunta di un listener al corpo e quindi l'invio delle chiavi allo scope corrente. Anche se non credo che lo farà a causa dell'incertezza su quale ambito è "attivo" quando si hanno più viste all'interno di uno stato. Un qualche tipo di evento onFocus
sul controller state/view sarebbe fantastico. Inoltre, sembra che non ci sia modo di ottenere lo scope "attivo" da angolare a meno di attraversare i campi $$ (privati).
OK. Grazie per aver letto.
Ecco le mie domande:
- È loro un modo per "far fare" con
ui-router
? L'ho solo valutato per due giorni e potrebbe essermi perso molto. - Esiste un'alternativa degna di Angularjs a
ui-router
? - Ci sono altri framework Javascript che fanno queste cose in modo simile a come lo descrivo?
Potrebbe essere degno di nota. Il dispositivo di destinazione è debole e il browser è un requisito. – Hampus
Come risolvi il tuo problema? – Chexpir
@ Hampus, mi sto anche chiedendo come hai risolto il tuo problema. Le ipotesi che l'ui-router rende su come viene costruita un'app stanno anche costringendo il mio desiderio di "tatto nativo". Sarebbe interessato a sapere cosa hai deciso di fare. –