Mi permetto di definirmi un hacker backbone. So cosa può fare il framework e dove sono i suoi limiti. Ho anche qualche esperienza con alcuni framework di modelli.Perché tutti stanno ancora costruendo viste padre-figlio usando il metodo render?
Ho visto molti tutorial in cui le persone spiegano come creare viste complesse e nidificate, e la maggior parte di loro lo costruisce in qualche modo usando i modelli, e quindi all'interno del metodo di rendering della vista genitore, per combinare il modello visualizzazioni
Per me, questo non ha senso perché si dovrebbe trattare il rendering del layout, nel codice dichiarativo. Venendo da Flex, mi è stato insegnato a non farlo mai. Ho sempre lasciato le descrizioni del layout e le associazioni delle variabili al markup e quindi la gestione degli eventi al codice dichiarativo (View instance) che utilizza questo markup.
Nessuno dei framework di template che ho testato, tuttavia, consente la creazione di markup complessi, con viste nidificate. Non si può davvero invocare un modello da un modello e quindi creare un'istanza di un oggetto View. Ciò sembra tecnicamente possibile, specialmente usando gli attributi dei dati, dove potremmo specificare i nomi dei tipi.
Quindi, tutto il metodo di rendering della classe View livello radice deve fare è trasformare questo modello in markup HTML, quindi scoprire quali dovrebbero essere i tipi degli oggetti figli, creare un'istanza di vista figlio per ognuno di essi, e mantieni la distanza, nel caso in cui quegli oggetti figlio dovrebbero avere oggetti figlio stessi. Ad ogni vista viene dato un contesto modello. Fondamentalmente tutti i passaggi standard che trattiamo sempre, ma automatizzati a livello Backbone.View.
Qualcun altro sta pensando a questo? Perché nessuno sembra utilizzarlo?
[la trinità fa banalmente il markup complesso con viste nidificate] (https://github.com/Raynos/trinity).È inoltre possibile preelaborare facilmente le viste della trinità per creare oggetti Vista dorsale per tutte le viste nidificate. Il problema con il tuo concetto è che hai bisogno di un sistema di templating decente che permetta un'eredità potente, quelle rare. – Raynos
Ho la sensazione che questo appartenga altrove, non è un problema definito con il tuo codice che può essere risolto, è più una discussione sulle migliori pratiche con viste genitore-figlio ... tendo quindi a vedere questo più come una discussione che come una Q & A argomento. forse qualcosa per la community Wiki? – Sander
Anche se non conosco il tuo particolare problema, si dovrebbe notare che la libreria AWT di Java si comporta nel modo in cui la descrivi come negativa. I gestori di layout posizionano l'elenco di elementi di controllo. I bambini vengono renderizzati in modo ricorsivo per costruire un albero di controllo/contenitore. Avendo costruito visualizzazioni di rendering ricorsive in Backbone con Handlebars.js, preferisco di gran lunga una soluzione basata su codice più elegante piuttosto che tentare di hackerare i miei modelli che sembrano richiedere sempre operazioni di template personalizzate. – Max