backbone-Ereignis auslösen

Möchte ich so lösen Sie ein benutzerdefiniertes Ereignis aus meiner backbone view-Klasse dann, wo ich Instanziieren der view möchte ich, um Listener für das Ereignis.

Vereinfachtes Beispiel:

var view = Backbone.View.extend({
     render:function(){
         this.trigger('customEvent', "working");
     }
});

//Separate js-Datei mit jquery ready Methode.

$(function() {
    var myView = new view();
    myView.bind('customEvent', this.customEventHandler);

    function customEventHandler() {
        //do stuff
    }
});
  • haben Sie eine Frage? Sie haben nur gesagt, was Sie tun möchten, mit keine Probleme, keine Fragen, oder alles, was beantwortet werden kann
  • Beachten Sie, dass myView.bind('customEvent', this.customEventHandler); werden muss myView.bind('customEvent', this.customEventHandler, this); - Sie haben, um den Kontext bei der übergabe eines Instanz-Methode als handler.
  • Sie müssen Sie nur passieren den Kontext, wenn Sie benötigen, um einen bestimmten Kontext. in Ihrem Beispiel, "dieses" würde beziehen sich auf das Globale Objekt als die Veranstaltung verbindlich ist, geschieht außerhalb der Ansicht
  • Derick sorry, wenn das nicht klar ist, was ich versuche zu tun, mit dem obigen code. Aber mein setup gibt mir eine Fehlermeldung callback - [0] ist nicht definiert. Wenn es etwas gibt, was ich liefern kann, die helfen könnten, Sie verstehen meine Frage bitte lass es mich wissen. Ich versuche, die trigger eine custome Ereignis aus der Sicht der Klasse und hören für die es in der js-Datei, wo die view-Klasse instanziiert wird.
  • Sie fehlen var vor customEventHandler
  • nrabinowitz danke für die Antwort. Seine immer noch nicht funktioniert, wenn ich den extra Rahmen dieser am Ende der bind-Methode. Ich bekomme immer noch eine Fehler-callback[0] ist nicht definiert, callback[0].gelten(callback[1] || this, args);
  • nun, es ist unklar, in welchem Kontext der code ausgeführt wird (ob es global oder innerhalb einer Funktion) - das bit am Ende ist klar in einige andere Stück code, da das Komma. Es ist wahr, dass Sie sich nicht übergeben zu müssen, in this wenn this.customEventHandler ist statisch.
  • nrabinowitz meiner Sicht Instanziierung innerhalb eines jquery-ready-Funktion, die ich meine aktualisierten code, um dies zu reflektieren.

InformationsquelleAutor Chapsterj | 2011-09-29
Schreibe einen Kommentar