Il modello Backbone.js non è definito nella vista?
-
27-10-2019 - |
Domanda
Ho deciso che proverò a imparare backbone.js creando un'app Web.Questa è la prima volta che faccio qualcosa di approfondito in Javascript, quindi la risposta al mio problema potrebbe essere proprio davanti ai miei occhi.
Ho l'app Web attiva github, insieme ad a versione funzionante questo non funziona.La console JavaScript dice semplicemente che qualcosa non è definito quando non penso che dovrebbe esserlo.Ecco l'errore fornito da Chrome per la riga 30 di app.js:
Uncaught TypeError: Cannot read property 'el' of undefined
Ho fatto riferimento a fondamentali della spina dorsale esempio di app modulare per le cose da fare e non sembra avere problemi con una cosa simile.
Se qualcuno potesse farmi notare cosa sto facendo di sbagliato, gli sarei molto grato!
Grazie in anticipo!
Soluzione
Mancava il metodo di rendering della vista macchina return this
E per impostazione predefinita tutti i metodi restituiscono indefiniti - ecco perché il concatenamento non ha funzionato
EDIT: e un piccolo suggerimento:
JQuery, sottoline e spina dorsale si registrano a livello globale - e grazie a ciò non devi definirli come dipendenze ogni volta - è sufficiente se li hai bisogno nella tua sceneggiatura principale una volta e dopo puoi accedervi dall'ambito globale come normalmente voluto
Altri suggerimenti
Nel mio caso stavo tornando this
senza il return
parola chiave.Dato che stavo usando Javascript e non CoffeeScript, non mi è riuscito.Quindi, se stai usando Javascript, usa return this;
invece che solo this
nell'ultima riga del render()
funzione.
Ho avuto anche un problema durante l'utilizzo this.collection.on('reset', this.render(), this)
.Ho invece dovuto usare this.collection.on('reset', this.render.bind(this));