-
Notifications
You must be signed in to change notification settings - Fork 0
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
- Store view related attributes on a Backbone.ViewModel and keep your Backbone.Model to persistance/state attributes
- http://github.com/tommyh/backbone-view-model
- 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
- Cache calls to
fetch
in memory and localStorage. Handy when you don't control the cache headers on the API you're calling. - https://github.com/mrappleton/backbone-fetch-cache
- 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/itsjoesullivan/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
- Allows your Backbone.js app to store data in local storage when using 'set', as well as reloading on recreation with the same local storage key.
- https://github.com/orizens/Backbone.Safe
- Get and set relations (one-to-one, one-to-many, many-to-one) for Backbone models
- https://github.com/PaulUithol/Backbone-relational
- Provides a lightweight and performant implementation of setting up associations between Backbone models
- https://github.com/dhruvaray/backbone-associations
- Relational associations for Backbone
- https://github.com/dbrady/ligament.js
A pageable, drop-in replacement for Backbone.Collection. Supports client-side and server-side pagination, single page and global sorting, and client-side bi-directional event handling. Inspired by Backbone.Paginator, but much better.
Capped Collections for BackboneJS.
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
Create subsets of collections using filter functions that automatically update allowing you to create a tree of collections that is always in sync.
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
- Cache calls to
fetch
in memory and localStorage. Handy when you don't control the cache headers on the API you're calling. - https://github.com/mrappleton/backbone-fetch-cache
- A layout and template manager for Backbone.js applications.
- Source: https://github.com/tbranyen/backbone.layoutmanager
- Docs: http://layoutmanager.org
An alternative Events implementation for the Backbone.View which provides events which bubble up through a view hierarchy while the latter is inferred from the DOM and the views' position in it.
- Installable via bower:
bower install backbone.viewevents
- Project: https://github.com/andreypopp/backbone.viewevents
Easily bubble events up your view hierarchy.
- Provides an intuitive message path through which views can communicate, free of explicit dependencies.
- Project: https://github.com/rotundasoftware/backbone.courier
A minimalist view mixin for creating and managing subviews in your Backbone.js applications.
- Use a clear and consistent syntax to insert subviews in your templates.
- Can be mixed into any view class, including the base views in Marionette, LayoutManager, etc.
- Project: https://github.com/rotundasoftware/backbone.subviews
Model-View binding in Backbone style.
- JavaScript configuration - clean up your templates.
- Seamlessly integrates into the lifecycle and style of Backbone Views.
- Read More: http://nytimes.github.com/backbone.stickit/
- Source: https://github.com/NYTimes/backbone.stickit
- 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
Extension for automatic binding and unbinding of model events to views. It defines two special view attributes - bindToModel and bindToCollection. They are handled similar to events attribute, but instead of binding to dom events they bind to model/collection. Also this plugin takes care of cleaning events after the view is removed.
https://github.com/RStankov/backbone-bind-to
Make jQuery plugins from your Backbone Views.
- Create Backbone.Views with jQuery syntax:
$('.example').myView([options])
- https://github.com/meleyal/backbone.pluginview
View management and transitions geared toward mobile applications.
- manage multiple views through a single "view port"
- create stacks of views and selectable lists of views
- transition between views (slide, fade, etc.)
- https://github.com/scttnlsn/backbone.viewkit
http://andreypopp.github.com/backbone.viewdsl/ or install via bower bower install backbone.viewdsl
Backbone.ViewDSL is a tiny library which provides a DSL for defining Backbone.View hierarchies. If you are tired of manually composing views in your Backbone application and want to get rid of all accompanying boilerplate then this library could help a bit.
Backbone.ViewDSL provides a DSL built on top of HTML with the following features:
- view instantiation (optionally loaded from AMD modules)
- conditional exclusion of DOM elements from a final result
- string and DOM node values interpolation
It is an extension for Backbone.View, which adds views management logic and structure. It's common for a view to have multiple subviews, but in Backbone.View managing subviews has to be done manually. This extension manages rendering a view and its subviews. When a view is removed, this extension also manages the subviews removal.
https://github.com/steverandy/backbone.managedview
- https://github.com/juggy/backrub
- Uses Handlebars.js and Backbone.View to keep your template updated on the page. Based on Sproutcore TemplateView.
jQuery style namespacing (http://docs.jquery.com/Namespaced_Events) of Backbone's Events object
A semantic, easily stylable, light weight and yet extremely flexible set of widgets for building data grids.
- Source: https://github.com/wyuenho/backgrid
- Documentation: http://wyuenho.github.com/backgrid/
- Source: http://github.com/teleological/slickback
- Example: http://teleological.github.com/slickback
- Documentation: https://github.com/teleological/slickback/wiki
That's an extendable grid system (jqGrid like) developed on Backbone, Twitter Bootstrap and jQuery.
- Source: http://github.com/direct-fuel-injection/bbGrid
- Documentation && Examples: http://direct-fuel-injection.github.com/bbGrid
- 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/aura/
- Source: https://github.com/addyosmani/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/michael-lefebvre/Backbone-AppRouter - Extends Backbone.Router to find back a route pattern and construct an URL with arguments.
- 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
- https://github.com/chaplinjs/chaplin - An opinionated, full-featured architecture framework for creating complex single-page applications with a strong emphasis on memory management and class heirarchies. Includes a powerful CollectionView class, rails-style routing with proper params hash, and controller patterns.
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
- 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.
- https://bitbucket.org/atlassian/backbone-brace
- http://blogs.atlassian.com/2012/11/add-some-strength-to-your-backbone/
- Models declare what attributes they expose, and all classes declare what events they expose
- Mixins allow mixing in methods / initializers / attributes / events to backbone classes
- Lightweight relational structure for creating cascading model / collection hierarchies
- 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
- Finite-state machine for Backbone Views and Models
- https://github.com/fragphace/backbone-fsm
- Defines and dispatches keyboard shortcuts
- leverages keymaster.js
- https://github.com/bry4n/backbone-shortcuts
- http://brunch.io - provides a powerful, rails-like directory structure and a powerful, extensible set of component generators (for working with Jade, handlebars, sass, less, stylus, etc.)
- 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
- Aims to help with the cases when restul API is not an option.
- https://github.com/mkuklis/backbone.service
- A Backbone JS extension for interacting with the Google Maps API (v3.10)
- Bind Google Maps Markers and InfoWindow overlays to Backbone Models / Collections
- https://github.com/eschwartz/backbone.googlemaps
- Create Backbone plugin project templates with ease.
- https://github.com/gsamokovarov/grunt-init-backbone-plugin