Come si organizzano le classi del modello di visualizzazione? Classi separati o uno gigante (e come modulare il gigante)? Come passare tra "pagine" (con dati caricati con ajax ovviamente)? Come caricare i modelli per backbonejs dopo il caricamento della pagina? Esempi e tutorial sarebbero apprezzati a condizione che siano più avanzati di quelli sul loro sito.Come creare un'app per singola pagina con knockout.js?
risposta
Wow, molte domande sono state raggruppate in una sola. Cercherò di colpirli qui, ma un disclaimer che sto scrivendo un intero corso per Pluralsight su Knockout ... quindi non posso entrare nel profondo hai bisogno di una casella di commento :)
1) Come organizzi le classi vista modello?
Penso che intendiate le classi del modello di visualizzazione. Raccomando di creare un modello di visualizzazione che contenga tutte le proprietà e i metodi richiesti dalla pagina. Metti il modello di vista in un contenitore e mantieni tutto quel javascript nel proprio file. Ad esempio, se hai la pagina customers.html per la tua struttura, potresti avere customers.js per il tuo modello di visualizzazione.
2) Classi separate o uno gigante (e come modulare il gigante)?
Ogni modello di vista è nel proprio file. Generalmente 1 modello di vista per file js (ma si potrebbero certamente inserire file interrelati nello stesso file). Inoltre, generalmente 1 modello di vista per visualizzazione (ma, in alcuni casi, è possibile andare oltre in alcuni casi).
Per i modelli è possibile crearli tutti in un unico file di modelli, se lo si desidera, o inserirli in file separati. Per le app più piccole mi piacciono 1 file models.js dato che la maggior parte dei modelli sono piuttosto semplici, piccoli e contengono proprietà semplici (anche se osservabili). Ma qui, è davvero una questione di scelta.
3) Come passare da una pagina all'altra?
Il meccanismo non è specifico per Knockout, quindi è possibile utilizzare collegamenti o anche controlli personalizzati (menu, schede, ecc.). La tua chiamata. Una volta deciso come navigare verso una pagina diversa, presumo che sia necessario passare i dati tra il 2 per il contesto. Un modo per farlo è nella query querystring con un ID, un altro modo è l'archiviazione locale (per gli oggetti più grandi che è necessario memorizzare in il cliente), o ci sono anche altre opzioni. Di nuovo, dipende davvero da cosa devi passare tra le pagine. Molte volte ho progettato le pagine per essere autosufficiente quindi non ho bisogno di passare molto tra di loro. Per quello che devo passare, cerco di inviare il meno possibile e cercare i dati in base ai tasti (nelle chiamate Ajax o nella memoria locale ... ovunque i dati siano presenti).
Spero che questo aiuti un po '.
UPDATE: Here is the link I mentioned to my Knockout.js course on Pluralsight
Grazie per la risposta! Giusto per chiarire, pensi che sia meglio avere un modello di visualizzazione con un ko.applyBindings per ogni 'pagina' (tra virgolette dato che si tratta di un'applicazione singola, ma sai, ogni vista unica)? – sdfadfaasd
Sembra che potresti avere una pagina in cui ci sono più "regioni" (o mini viste) sulla pagina. In quel caso potresti guardarlo come hai molte viste, e ognuna di quelle viste ha un modello di vista .... poi c'è un modello di vista principale/genitore per l'intero set di modelli di vista. Ma sto facendo un sacco di ipotesi qui. Si consiglia di iniziare con un modello di visualizzazione principale per l'applicazione per singola pagina e di iniziare ad aggiungere ulteriori modelli di visualizzazione secondaria secondo necessità. –
- 1. MVVM con Knockout.js
- 2. Come creare un sito a pagina singola da Markdown?
- 3. pagina singola mirror con httrack
- 4. integrazione paypal con app a singola pagina
- 5. Navigazione in un'applicazione singola pagina con react.js
- 6. Design a pagina singola con Orchard CMS
- 7. Genera PDF a pagina singola con PhantomJS
- 8. pagina singola, multi-pagina problema di stampa
- 9. Instradamento in un'applicazione a pagina singola con un'altra pagina iniziale
- 10. knockout.js e jQueryUI per creare un menu di fisarmonica
- 11. scala PDF a pagina singola
- 12. Architettura per l'applicazione singola pagina (JavaScript)
- 13. Sito di amministrazione Django: come creare una singola pagina per le impostazioni globali?
- 14. wrapping knockout.js con clojurescript
- 15. applicazione singola pagina web riguarda
- 16. jQuery documento pronto con Knockout.js
- 17. KnockOut.js con Asp.net mvc
- 18. Knockout.js con jQuery tablesorter
- 19. Come attivare più modifiche come "unità" con knockout.js
- 20. Come posso creare un bind condizionale in knockout.js?
- 21. applicazione a pagina singola con URL puliti senza file .htaccess?
- 22. Autenticazione per utenti su un'app per singola pagina?
- 23. Dropzone multiplo in una singola pagina
- 24. Android: come creare una singola riga AutoCompleteTextView?
- 25. Bootstrap datepicker con database knockout.js
- 26. Perché utilizzare una singola pagina index.php per l'intero sito?
- 27. knockout.js con opzioniValore e valore
- 28. Applicazione pagina singola - Frontend indipendente dal backend?
- 29. Appropriato back-end per un'applicazione Web a pagina singola?
- 30. dojo vs extjs per grande pagina singola js app
In attesa di alcune risposte qui. – Domenic