I'm new to Backbone and I'm confused by a snippet of the sample todo app code: http://backbonejs.org/docs/todos.html
On the AppView
object there's a function called addOne
that takes an argument:
addOne: function(todo) {
var view = new TodoView({model: todo});
this.$("#todo-list").append(view.render().el);
},
This function is called whenever the add
event is triggered on the Todos
model. There doesn't seem to be anything in here that tells the listener that it needs to pass in a todo
argument to the addOne
function:
this.listenTo(Todos, 'add', this.addOne);
When the event gets triggered and this.addOne
is called, how does Backbone know to provide addOne
with it's todo
argument, since it doesn't seem to be specified in the listenTo
invocation?
Backbone.Collection.add
& Backbone.Collection.create
will trigger the add
event passing model, this, options
as arguments like this.
.trigger('add', model, this, options);
this.addOne
is then passed these arguments when called by listenTo
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With