Models should be able to be passed around throughout your app, and used anywhere that bit of data is needed. It often renders the data from a specific model, or number of models — but views can also be data-less chunks of UI that stand alone. Instead, views listen to the model events, and react or re-render themselves appropriately.
In rich web applications, we still want to provide linkable, bookmarkable, and shareable URLs to meaningful locations within an app.
Use the Router to update the browser URL whenever the user reaches a new "place" in your app that they might want to bookmark or share.
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.
The project is hosted on Git Hub, and the annotated source code is available, as well as an online test suite, an example application, a list of tutorials and a long list of real-world projects that use Backbone.
Events do not have to be declared before they are bound, and may take passed arguments.
For example: Bind a callback function to an object.Conversely, the Router detects changes to the URL — say, pressing the "Back" button — and can tell your application exactly where you are now.Events is a module that can be mixed in to any object, giving the object the ability to bind and trigger custom named events.Simply create a new Collection with the When fetching raw JSON data from an API, a Collection will automatically populate itself with data formatted as an array, while a Model will automatically populate itself with data formatted as an object: However, it's fairly common to encounter APIs that return data in a different format than what Backbone expects.For example, consider fetching a Collection from an API that returns the real data array wrapped in metadata: Each View manages the rendering and user interaction within its own DOM element.Philosophically, Backbone is an attempt to discover the minimal set of data-structuring (models and collections) and user interface (views and URLs) primitives that are generally useful when building web applications with Java Script.