Ho appena iniziato a lavorare con Durandal e tutti i pezzi stanno cadendo sul posto, e sto utilizzando il modello Hot Towel per accelerare le cose.Come utilizzare i menu a discesa per la navigazione Durandal?
Una cosa che mi ostacola è come creare un sistema di navigazione gerarchico più complesso di un gruppo di testa. Ecco quello che voglio finire con:
ABC
A1 B1 C1
A2 B2 C2
A, B, e C sono i menu di primo livello che non hanno percorsi ad essi connessi - sono semplicemente segnaposto. Avrò viste e modellini visivi per A1, A2, B1, B2, C1 e C2 e ho bisogno che quei tag hash siano link attivi.
La mia migliore idea al momento è quella di aggiungere il menu genitore nell'URL di ciascuna rotta e avere il codice in nav.html che aggiunge dinamicamente ciascun nodo al genitore appropriato in base all'analisi dell'URL. Per essere completamente dinamico, aggiungerebbe sia i nodi padre che i nodi figli in modo dinamico.
{
url: 'A_A1',
moduleId: 'viewmodels/A_A1',
name: 'A1',
visible: true
}
ho fatto un sacco di ricerca di esempi di navigazione gerarchica con Durandal, ma non hanno ancora visto nulla. Esiste una best practice per espandere la funzionalità di navigazione oltre la semplice lista monodimensionale? Sto trascurando alcune funzionalità del router che non vedo che mi permetterebbe di farlo senza incorporare le informazioni di gerarchia nei nomi delle viste?
MODIFICA: Ho appena contrassegnato una risposta corretta, anche se non ero soddisfatto delle soluzioni presentate. Quando si seleziona un framework per astrarre e separare la logica, la presentazione e il controllo, sembra sciocco iniziare a unire questi costrutti solo per fornire più di una shell di navigazione di base. Ho spostato i miei sforzi di sviluppo in angularjs dove cose come questa diventano molto più intuitive e possono mantenere la separazione. Speriamo che Durandal possa andare avanti un po 'di più nel prossimo futuro e lo valuterò sicuramente per progetti futuri.
Questa è un'idea eccellente: tagga il percorso con il suo genitore. Ho intenzione di lavorare su questo un po 'per renderlo più dinamico, e forse anche come un widget di Durandal. – Graham
Spero che ti aiuti, sto usando questo metodo da un po 'e funziona molto bene ed è dinamico allo stesso tempo. Ho appena visto che non avevo la giusta indentazione sui b percorsi, quindi l'ho risolto. In bocca al lupo. –