gsklee
gsklee

Reputation: 4944

Backbone - Difference between Collection.add() / Collection.create()?

I am rather confused by the differences between the two. It seems like Collection.create() (fires add and sync events) can be seen as the combination of Collection.add() (fires add) and Model.save() (fires sync)?

Is the above assessment correct? What am I missing?

Upvotes: 6

Views: 4583

Answers (1)

zifot
zifot

Reputation: 2688

That's right. It's a shortcut method. Documentation states:

create collection.create(attributes, [options])

Convenience to create a new instance of a model within a collection. Equivalent to instantiating a model with a hash of attributes, saving the model to the server, and adding the model to the set after being successfully created.

And annotated source code:

Create a new instance of a model in this collection. Add the model to the collection immediately, unless wait: true is passed, in which case we wait for the server to agree.

This second description is a little bit more accurate as only passing {wait:true} has the effect of not adding a model to the collection in case of errors upon saving the model.

Upvotes: 10

Related Questions