-
Notifications
You must be signed in to change notification settings - Fork 19
Extensions, Plugins, Resources
Backbone's only hard dependency. http://underscorejs.org
Needed if you'd like to parse and serialize JSON in older browsers (read: "Internet Explorer") https://github.com/douglascrockford/JSON-js
Recommended for DOM manipulation and Ajax. http://jquery.com
Recommended as a jQuery alternative for mobile apps http://zeptojs.com
Generate customisable forms from your model schema. Features include custom editors, nested forms, editable lists and validation.
Improved support for models with nested attributes. Get and set attributes and listen to changes on them using a path, e.g. get('user.address.ln1').
A plugin to make Backbone keep track of nested attributes.
Create undo points to store / restore your model's state.
Get the code and read the documentation:
Memento pattern realization for Backbone.js models with more flexible API than in Backbone.Memento
Simple helpers to configure your models from one configuration object.
- Provides per-attribute serialization and deserialization (using Underscore-Awesomer's _.toJSON and _.parseJSON functions).
- Useful for client-side localized string lookups, custom Date storage (for CouchDB views), attribute validations, and much more!
- https://github.com/kmalakoff/backbone-articulation
- https://github.com/kmalakoff/underscore-awesomer
- Declarative per-attribute validations
- Subscribe to error events per attribute (i.e. 'error:name')
- Maintains original interface.
- http://github.com/n-time/backbone.validations
- Validations are declared on the model
- Conventionally updates your html with error classes and error messages
- Easy to extend with custom validators
- http://github.com/thedersen/backbone.validation
- Validations are declared on the model
- Easy to extend with custom validators
- Provides the replacement of out-of-range values with data from the defaults hash
- http://github.com/toddself/Backbone.Validator
- Lets you build your views while you wait for models to load.
- Notifies you when a model unloads so you can change your view state.
- Compatible with Knockback.js (https://github.com/kmalakoff/knockback)
Pretty much just a collection and model id reference. Simple, but useful.
- Finite-state machine (FSM) for for Backbone.Model. Elegant syntax, and very short. Patterned after the Ruby workflow gem.
- https://github.com/kendagriff/workflow.js
- Lets you model attributes with dot-syntax.
- e.g. song.get('album.title')
- https://github.com/amccloud/backbone-dotattr
- Enables you to override getters and setters with logic
- https://github.com/asciidisco/Backbone.Mutators
- One Collection, different model objects, mapped easy via configuration
- https://github.com/asciidisco/Backbone.Chosen
- LocalStorage adapter that overrides Backbone.Sync
- https://github.com/jeromegn/Backbone.localStorage
- Making it easy to use backbone with couchdb.
- https://github.com/pyronicide/backbone.couchdb.js
- Bind Socket.io events to backbone models & collections.
- Includes optional replacement for Backbone.sync for use with Socket.io.
- https://github.com/logicalparadox/backbone.iobind
- WebSQL adapter that overrides Backbone.sync
- https://github.com/MarrLiss/backbone-websql
- Get and set local variables that won't persist on save() calls
- https://github.com/jrs2ea/backbone.slet
- Work with SharePoint items and list as Backbone Models and Collections.
- https://github.com/lstak/Backbone.SharePoint
- Connect to SAP business data through SAP Gateway.
- https://github.com/lstak/Backbone.SAP
- Allows your Backbone.js app to work offline
- https://github.com/Ask11/backbone.offline
- Allows your Backbone.js app to fetch and store data based on the JSON-RPC protocol
- https://github.com/asciidisco/Backbone.Rpc
- Relational associations for Backbone
- https://github.com/dbrady/ligament.js
- Get and set relations (one-to-one, one-to-many, many-to-one) for Backbone models
- https://github.com/PaulUithol/Backbone-relational
- Inspired by Backbone-relational. Provides a lightweight and performant implementation of setting up associations between models
- https://github.com/dhruvaray/backbone-associations
Load your collections piece by piece. Very useful for large model sets.
Simple helper function that makes it easy to work with nested Backbone collections
- Source: https://gist.github.com/1610397
Provides NoSQL queries (like MongoDB) for backbone.js collections
- good readme documentation
- runs on node.js and in the browser
- https://github.com/davidgtonge/backbone_query
Provides extensive querying, filtering, and searching functionality for backbone.js collections
- includes live interactive demo
- source-code documentation only
- runs on node.js and in the browser
- supports NoSQL queries (like MongoDB)
- supports filters (applying a filter function to a collection)
- supports search strings (useful for turning search input fields into useful queries)
- supports pills for search strings (e.g.
author:ben priority:important
) - supports optional live collections (when a model is changed, added or removed, it can automatically be tested against the collections queries, filters, and search string, if it fails, remove it from the collection)
- supports parent and child collections (when a parent collection has a model removed, it is removed from the child collection too, when a parent collection has a model added or changed, it is retested against the child collection)
- https://github.com/bevry/query-engine
- A manager for templates & layouts in Backbone.js
- Source: https://github.com/tbranyen/backbone.layoutmanager
- Screencast: http://tbranyen.com/post/announcing-backbonejs-layoutmanager
Make your BackboneJS apps dance with a composite application structure!
- Better application startup structure through application initializers
- Built in event aggregator, for convenient application level events
- RegionManagers to properly display / remove view instances, including memory leak cleanup
- Source: https://github.com/derickbailey/backbone.marionette
- Reference application: http://bbclonemail.heroku.com
- Data binding that's designed to feel familiar to Backbone users
- Examples: http://tantaman.github.com/yabbe/examples/YabbeViewExamples.html
- Project: https://github.com/tantaman/yabbe
-
Data binding between any object, bundled support for Backbone views, models, jQuery (and thus DOM elements or via CSS selectors), Zepto and plain objects (plain objects can only observe)
-
Use
new Synapse(object)
to return a Synapse object or leave off thenew
and it will return theobject
withobserve
,notify
andsync
methods for more transparent usage. -
Define your own hooks for custom behavior or to support other types of objects
- Minimal example: https://github.com/bruth/synapse/blob/master/src/synapse/hooks/object.coffee
- Robust example: https://github.com/bruth/synapse/blob/master/src/synapse/hooks/jquery.coffee
- Docs here: https://github.com/bruth/synapse/blob/master/src/synapse/hooks/README.md
- Register your hooks
Synapse.addHooks(hook1, hook2, hook3, ...)
-
Source: https://github.com/bruth/synapse
-
Docs & Examples: http://bruth.github.com/synapse/docs/
-
Interactive Demo: http://jsfiddle.net/bruth/bufeK/
Simple, flexible and powerful bidirectional view-model binding for backbone. A javascript only solution (no markup in html) that relies on jQuery delegates for binding. Similar to how backbone view event blocks work.
- Handles partial view binding, nested views, formatting, type conversion, arbitrary html attributes and most html element types.
- JS Weekly Article
- Git
Bi-directional bindings between Backbone.View elements and Backbone.Model attributes.
- Simple binding definitions like Backbone.View.events
- Bind to any element with by selector
- Bi-directional transformation
- Tested
- https://github.com/amccloud/backbone-bindings
Awesome model binding between models and form input elements, and more
- KnockoutJS-style
data-bind
attribute support - Bind form fields to models and vice-versa
- Convention based
- Pluggable with your own conventions
- Extensible to bind to more than just form input elements
Get the code and read the documentation:
Knockout bindings for Backbone.js models and collections.
-
includes localization hooks
-
integrates with Backbone.ModelRef (https://github.com/kmalakoff/backbone-modelref) for lazy loading scenarios
-
jsFiddle sample: http://jsfiddle.net/kmalakoff/QSkpv/
A little plugin for use in leanback apps, where someone is sat on the couch using a remote control to use your app.
- Simple use - keypad.bind("key:up", function(){//do something on up});
- Events can be triggered on anything that extends Backbone.Events
- Extensible to capture other key events
- http://tomphilip.me/index.php/backbone-on-the-couch/
Plugin that proxies jQuery/Zepto/$ functions for Backbone Views.
A small plugin that adds declarative model and collection event binding to Backbone Views.
- https://github.com/Codecademy/backbone.declarative
- Tested and passes all Backbone tests.
KnockoutJS-inspired declarative binding solution for Backbone Views.
- KnockoutJS-compatible binding handler API
- Explicit control over dependencies (e.g. cascading select boxes)
- Unobtrusive (i.e. code-based) and declarative (i.e. markup-based) configuration
- Multiple binding contexts for separating transient and persistent models.
- Tests, TodosMVC, and examples.
- https://github.com/politician/outback
- https://github.com/juggy/backrub
- Uses Handlebars.js and Backbone.View to keep your template updated on the page. Based on Sproutcore TemplateView.
- Source: http://github.com/teleological/slickback
- Example: http://teleological.github.com/slickback
- Documentation: https://github.com/teleological/slickback/wiki
- Homepage: http://wiki.iks-project.eu/index.php/VIE
- Annotated Source: http://bergie.github.com/VIE/
Backbone.Aura is a decoupled, event-driven architecture on top of Backbone.js for developing widget-based applications
- Homepage: http://addyosmani.github.com/backbone-aura/
- Source: https://github.com/addyosmani/backbone-aura
- https://github.com/azicchetti/jquerymobile-router - a replacement for Backbone's routing, which is compatible with jQuery Mobile
- https://github.com/angelo0000/backbone_filters - provide Rails-like before & after filters on your Routers; especially useful for user access control
- https://github.com/boazsender/backbone.routefilter - Before and after filters for Backbone.Router. Similar idea to backbone_filters above, but takes a different approach, and has a different API.
- https://github.com/jhudson8/backbone-query-parameters - provides query parameter support to backbone routes; especially useful for routes with optional parameters. Traditional parameters can be used in conjunction with query parameters.
- https://github.com/tbranyen/backbone-boilerplate - A set of best practices and utilities for building Backbone.js applications
- https://github.com/jamuhl/backbone.CQRS - Backbone extension to provide CQRS integration down to clientside
- http://brunch.io - provides a powerful, rails-like directory structure & includes great "wheels" (eco, stitch, jasmine)
- Provides mixin classes for a local collections (not stored on a server) and for mixing Backbone.Events into any class (including a check if they are mixed-in).
- Provides a facility to use Backbone.Events trigger('destroy') to do memory cleanup instead of a destroy method (event-based instance life-cycles).
- https://github.com/kmalakoff/mixin
- Not a JS loader like require.js, but a way to structure your code in big Backbone app projects.
- Load JS without worrying about load sequence and dependencies between modules.
- Source: https://github.com/juggy/backbone-module
- http://fahad19.github.com/singool/ - lightweight framework on top of Backbone for developing single-page web applications.
- https://github.com/dgreisen/Backbone-Traversal
- Quickly write single-page apps following a hierarchical design pattern.
- Homepage: http://lorenwest.github.com/backbone-callbacks
- Github: https://github.com/lorenwest/backbone-callbacks
- Works in the browser and in node.js (commonJS)
- Tiddlywiki-like client for managing topical content. MongoDB back end.
- Work in progress. Feedback welcome.
- https://github.com/mlanza/thingy-client
- Easily create Backbone models in unit tests.
- https://github.com/SupportBee/Backbone-Factory
- Make a finite-state machine out of any object.
- Backbone stateful views.
- https://github.com/sebpiq/backbone.statemachine
- Defines and dispatches keyboard shortcuts
- leverages keymaster.js
- https://github.com/bry4n/backbone-shortcuts
- Modifications to Backbone's Model an Collection so that they play nice with django-tastypie. Includes a way to easily paginate over a resource list and a way to access the associated meta information.
- https://github.com/amccloud/backbone-tastypie
- Errors are thrown when Backbone instance does not have all the required methods of the interface.
- Better organized code. Keep your interfaces separate, with comments - a well-documented reference point for the methods in your Models, Collections, Views, and Routers. (Not for production).
- https://github.com/luke-siedle/backbone-interface