2014-02-20 14 views
11

Ich bin neu in Backbone und ich bin von einem Ausschnitt aus der Probe todo App-Code verwirrt: http://backbonejs.org/docs/todos.htmlBackbone listenTo Rückruf Argumente

Auf dem AppView Objekt gibt es eine Funktion addOne genannt, die ein Argument:

addOne: function(todo) { 
    var view = new TodoView({model: todo}); 
    this.$("#todo-list").append(view.render().el); 
}, 

Diese Funktion wird aufgerufen, wenn das Ereignis add auf dem Modell Todos ausgelöst wird. Es scheint nicht, etwas in hier zu sein, dass der Hörer erzählt, dass es in einem todo Argumente an die addOne Funktion zu übergeben muss:

this.listenTo(Todos, 'add', this.addOne); 

Wenn das Ereignis ausgelöst wird und this.addOne genannt wird, wie weiß Backbone Geben Sie addOne mit seinem todo Argument an, da es anscheinend nicht im listenTo Aufruf angegeben ist?

+0

Zufällig ist Todos eine Instanz von Backbone.Collection? –

+0

@KyleNeedham Ja ist es. – user886596

+0

http://backbonejs.org/#Events-catalog –

Antwort

9

Backbone.Collection.add & Backbone.Collection.create löst das add Ereignis model, this, options als Argumente wie diese übergeben.

.trigger('add', model, this, options);

this.addOne geleitet wird dann diese Argumente, wenn sie von listenTo genannt.

+5

Der [Ereigniskatalog] (http://backbonejs.org/#Events-catalog) in den Dokumenten deckt dies ab. –