Domanda

sto adottando Backbone.js di rendere un piccolo angolo di una grande web app esistente. Se questo va bene, posso vedere Backbone.js crescere fino a comprendere tutta l'applicazione, dando un po 'tanto necessaria struttura a un'applicazione da agricoltura biologica. Questa è la prefazione. Ora per il problema:

Ho una casella di selezione che permette all'utente di selezionare un piano di lettura. Quando la selezione cambia, la vista aggiorna un testo descrittivo, un'interfaccia di calendario, e un piccolo widget per la marcatura di letture di oggi il più completo. Il widget avrà una casella di controllo per ogni lettura (uno o più) in entry-level e un pulsante per continuare a leggere il giorno successivo. (È possibile visualizzare la versione corrente, non Backbone di questa interfaccia (meno il sistema di completamento) sul lato destro della app esistente .

Qual è la granularità appropriato per ogni View? Ho identificato i seguenti "bit poco pratici":

  • la scheda stessa, che comprende tutti i controlli contenuti.
  • La casella di selezione
  • Il testo descrittivo, che risponde alla casella di selezione
  • Il calendario, che risponde alla casella di selezione
  • Widget Le letture, che risponde alla casella di selezione, e contiene:
    • Opzionalmente, un pulsante "Start", che attiva il piano attuale.
    • Una volta attivato, una o più caselle di controllo corrispondenti alle singole letture entro l'entrata di oggi.
    • Una volta attivato, un pulsante "Avanti", che completa l'entry-level e visualizza la successiva.

Nel caso in ciascuno di questi punti elenco ottenere il suo punto di vista? Solo i grandi pezzi (scheda, selezionare, Widget)? Il primo si tradurrà in un bel paio di Vista. La prima sembra che potrebbe portare a eccessivamente complicate View implementazioni. Cosa c'è di meglio?

Nota: Mi rendo conto che potrebbe essere interpretato come una domanda selvaggiamente-soggettiva, ma sto ancora confezionamento mia testa intorno modelli Backbone.js e Javascript / DOM MVC, e spero che v'è una stretta "questo è ciò che è destinato / funziona meglio" da più esperti praticanti Backbone.js. Grazie!

È stato utile?

Soluzione

Non c'è una risposta definitiva alla tua domanda. Si può avere uno sguardo alla granularità di SproutCore per esempi.

È possibile anche guardare http://vimeo.com/17186379 dove Yehuda Katz illustrano le difficoltà di aggiornamento diversi pezzi della pagina.

Un modo di vedere la cosa sarebbe quella di controllare quale parte deve essere aggiornata con il cambiamento differente modello / eventi e cercare di ridurre al minimo il rendering re.

Siamo spiacenti, nessun buone risposte come lei ha sottolineato;)

Altri suggerimenti

In generale, la granularità delle vostre opinioni dipenderà da trovare un equilibrio tra la complessità del particolare pezzo di UI, e over-frammentazione di opinioni in piccoli pezzi. Probabilmente non avrebbe usato una vista per qualcosa di piccolo come un pulsante (una classe CSS è tutto ciò che ha realmente bisogno per questo).

Nel vostro caso particolare, probabilmente hanno una visione per il widget del calendario - in modo che possa essere facilmente riutilizzato in altri luoghi della app - e una vista per l'intera scheda Devozioni. Il resto può essere fatto attraverso evento vincolante.

Per quanto riguarda gli aggiornamenti del modello e ri-rendering, l'idea con Backbone è quella di separare la preoccupazione che da punti di vista. I modelli emettono eventi "cambiamento" quando i loro attributi di cambiamento, e tutto Visite capita di essere sulla pagina al momento, e stanno mostrando che i dati particolari del modello, saranno informati del cambiamento, e possono aggiornarsi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top