In my backbone.js app, there is a Trips collection
that holds Trip models
, which is working with LocalStorage
. I am able to call Trips.create(form_attributes)
to create and save a trip to the Todos store
.
When I first load my app, I call Trips.fetch({ success: trips_fetch_success })
, and trips_fetch_success
receives a response that shows the Trip models
that the Trips collection
holds.
I have tried to bind refresh
and change
events to the Trips collection
, but these events are not being caught, making me believe I have the wrong idea about which events Trips.fetch
triggers.
My question: which events should Trips.fetch
trigger? And are the events triggered on the collection or on each of the individual Trip models
?
js trigger Event is used to invoke or callback the function for the given event or a space-delimited list of events. The subsequent arguments will be passed along to the event callbacks in order to trigger it. Parameter Values: event: It is used to bind an object with an event.
Backbone. js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
js Event once() The event once method is just like event on method but it causes the bound callback to only fire once before being removed.
Advertisements. Collections are ordered sets of Models. We just need to extend the backbone's collection class to create our own collection. Any event that is triggered on a model in a collection will also be triggered on the collection directly.
Collection.fetch()
will call reset
on success, which in turn will trigger a 'reset' event. Any subscribers to the collections reset event should receive the event.
The key here is "on success." I had this problem, only to discover that backbone was silently swallowing my errors messages. Pass in an error handler that, at least, logs to console.log()
, and see what's happening:
trips.fetch({error: function() { console.log(arguments); }});
(Note: Old versions of backbone.js will trigger "refresh" instead of "reset")
If you are using backbone 1.0, you'll need to pass reset:true in the fetch() call in order to bind with the reset event:
trips.fetch({reset: true});
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