Skip to content

Extensions, Plugins, Resources

boazsender edited this page Aug 30, 2012 · 102 revisions

Dependencies

Underscore.js

Backbone's only hard dependency. http://underscorejs.org

JSON2.js

Needed if you'd like to parse and serialize JSON in older browsers (read: "Internet Explorer") https://github.com/douglascrockford/JSON-js

jQuery

Recommended for DOM manipulation and Ajax. http://jquery.com

Zepto

Recommended as a jQuery alternative for mobile apps http://zeptojs.com

Model

Backbone Forms

Generate customisable forms from your model schema. Features include custom editors, nested forms, editable lists and validation.

backbone-deep-model

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').

Backbone-Nested

A plugin to make Backbone keep track of nested attributes.

Backbone.Memento

Create undo points to store / restore your model's state.

Get the code and read the documentation:

Backbone.actAs.Mementoable

Memento pattern realization for Backbone.js models with more flexible API than in Backbone.Memento

Backbone.actAs.Configurable

Simple helpers to configure your models from one configuration object.

Backbone.Articulation

Backbone.Validations

Backbone.Validation

Backbone.Validator

Backbone.ModelRef

  • 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.

workflow.js

Backbone Dotattr

Backbone.Mutators

Backbone.Chosen

Storage

Backbone.localStorage

backbone.couchdb.js

Small Backbone ORM

Backbone.ioBind

Backbone-websql

Backbone-slet

Backbone.SharePoint

Backbone.SAP

Backbone.Offline

Backbone.Rpc

Relations

Ligament

Backbone-relational

Backbone-associations

Collection

Backbone.actAs.Paginatable

Load your collections piece by piece. Very useful for large model sets.

Nesting.js

Simple helper function that makes it easy to work with nested Backbone collections

Backbone Query

Provides NoSQL queries (like MongoDB) for backbone.js collections

Query Engine

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

View

LayoutManager

Backbone.Marionette

Make your BackboneJS apps dance with a composite application structure!

Yabbe (Yet Another Backbone Binding Exension)

Synapse

Backbone.ModelBinder.js

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

Backbone Bindings

Bi-directional bindings between Backbone.View elements and Backbone.Model attributes.

Backbone.ModelBinding

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:

Knockback.js

Knockout bindings for Backbone.js models and collections.

Backbone on the Couch

A little plugin for use in leanback apps, where someone is sat on the couch using a remote control to use your app.

ProxyDollar

Plugin that proxies jQuery/Zepto/$ functions for Backbone Views.

Backbone.declarative

A small plugin that adds declarative model and collection event binding to Backbone Views.

outback.js

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

Templates

Backrub

Helpers

Builder (DOM Builder for Backbone Views)

Widgets

Slickback (integration with SlickGrid)

Vienna IKS Editables

Backbone.Aura

Backbone.Aura is a decoupled, event-driven architecture on top of Backbone.js for developing widget-based applications

Routing

jQuery Mobile Routing

Before/After Filters

Query Parameters

Frameworks

Backbone Boilerplate

Backbone.CQRS

Brunch

  • http://brunch.io - provides a powerful, rails-like directory structure & includes great "wheels" (eco, stitch, jasmine)

Capt by Ben Nolan

Mixin.js

  • 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

Backbone Module (Module loader for Backbone apps)

  • 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

Singool.js

Backbone-Traversal

Other

Backbone.Analytics: Drop-In Google Analytics For Backbone's Router

Backbone-Callbacks: Node.js style callbacks for asynchronous methods

Backbone.jFeed: RSS/ATOM Feeds For Collections

Cleaning Up And Preventing Memory Leaks With Your Views

Thingy-Client

Backbone (adapted for MooTools)

Backbone-Factory

Backbone.StateMachine

Backbone.Shortcuts

Backbone Tastypie

  • 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

Backbone Interface

  • 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