Backbone.js Modell nicht in Sicht definiert?
-
27-10-2019 - |
Frage
Ich habe beschlossen, dass ich versuchen werde, Backbone.js zu lernen, indem ich eine Web -App erstelle. Dies ist das erste Mal, dass ich in JavaScript etwas Umfangreiches gemacht habe, daher kann die Antwort auf mein Problem direkt vor meinem Gesicht liegen.
Ich habe die Web -App auf Github, zusammen mit a Auslaufversion Das funktioniert nicht. Die JavaScript -Konsole sagt nur, dass etwas undefiniert ist, wenn ich nicht denke, dass es sein sollte. Hier ist der Fehler, den Chrome für Zeile 30 von App.js gibt:
Uncaught TypeError: Cannot read property 'el' of undefined
Ich habe auf irgendwie auf die verwiesen Backbone-Fundamentals Beispiel modulare To-Do-App, und es scheint keine Probleme mit ähnlicher Sache zu haben.
Wenn jemand darauf hinweisen könnte, was ich falsch mache, wäre ich sehr dankbar!
Danke im Voraus!
Lösung
Ihre Methode zur Rendermethode für Maschinenansicht fehlte return this
Und Standardmäßig kehren alle Methoden undefiniert zurück - deshalb hat das Ketten nicht funktioniert
Bearbeiten: Und ein kleiner Tipp:
JQuery, Undercore und Backbone Registrieren Sie sich weltweit - und dank Sie müssen sie nicht jedes Mal als Abhängigkeiten definieren - es reicht aus, wenn Sie sie einmal in Ihrem Hauptskript benötigen, und danach können Sie sie aus dem globalen Bereich wie Sie normalerweise aus dem globalen Bereich zugreifen möchten
Andere Tipps
In meinem Fall kehrte ich zurück this
ohne das return
Stichwort. Als ich JavaScript benutzte und nicht CoffeeScript hat es mir fehlgeschlagen. Wenn Sie also JavaScript verwenden return this;
statt gerecht this
in der letzten Zeile der render()
Funktion.
Ich hatte auch ein Problem, wenn ich benutzte this.collection.on('reset', this.render(), this)
. Ich musste stattdessen benutzen this.collection.on('reset', this.render.bind(this));