-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
An Underscore alternative with customs builds and additional features. http://lodash.com/
A jQuery alternative for mobile apps http://zeptojs.com
NB: Zepto isn't fully compatible with jQuery, use at your own risk
A tiny drop-in replacement for jQuery to allow Backbone to work while relying on only native DOM APIs. https://github.com/inkling/backbone.native
High-performance post-backbone models: 10x more speed, type safety, aggregation and relations right out of box. https://github.com/Volicon/NestedTypes
Backbone fork with independent models and collections implementation, backward compatible with backbone 1.2 API.
An elementary HTML5 Canvas game engine built on Backbone. http://martindrapeau.github.io/backbone-game-engine
A Firebug extension to debug Backbone based applications running off web-browsers. Understand Backbone application behavior without wading through JavaScript code. Work with application level constructs, pursue what-if exploration and more...
https://github.com/dhruvaray/spa-eye
Chrome Developer Tools extension for debugging Backbone.js applications. Displays in real-time all the application views, models, collections and routers, with detailed information such as handled jQuery events, model attributes, collection models, sync status, events triggered and more.
https://github.com/Maluen/Backbone-Debugger
- A plugin to connect Marionette JS and Backbone JS applications with Drupal 7
- https://github.com/enzolutions/backbone.drupal
- A plugin to create entire Document structures with nested Backbone.js Models & Collections with deep model references and event bubbling.
- https://github.com/icereval/backbone-documentmodel
- Allows you to get and set your attributes on a model using a jQuery like api
- https://github.com/rhysbrettbowen/Backbone.ModelAttrs
- Create a new model with computed properties from an existing model and a schema that keeps itself up to date (great to use as a serialized model for templates - separates original model and computed properties while still being reactive).
- https://github.com/rhysbrettbowen/Backbone.ModelMorph
- The plugin helps you define schemas for your models. It supports a regular types, arrays, nested or reference models/collections, allows to define a custom data types and computable properties.
- https://github.com/DreamTheater/Backbone.Schema
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.
Easiest way to work with your Backbone.Model nested array-object attributes.
A small plugin that manages model changes that accrue between saves, giving a Model the ability to undo previous changes, trigger events when there are unsaved changes, and opt in to before unload route handling.
Get the code and read the documentation:
A simple undo manager that creates undo points based on triggered events. Suitable for small to mid-sized applications.
Get the code and read the documentation:
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
- 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
- Standalone validator
- Easy to attach validation to views
- Extendable built-in validators
- Example: Model validation (with nested attributes) & data binding using Backbone.Validator + Backbone.Stickit
- https://github.com/fantactuka/backbone-validator
- Does only validation
- Validations are declared on the model
- Easy to extend with custom validators
- Requires less typing
- http://github.com/igord/backbone-check
- 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
- Ensures unique model instances inside a Backbone app. Can optionally sync models across windows using localStorage.
- https://github.com/disqus/backbone.uniquemodel
- Adds a toggle method to
Backbone.Model
to easily toggle attribute values. - https://github.com/todd/backbone.model.toggle
- Id generator for
Backbone.Model
. - https://github.com/ask11/backbone-id
-
Backbone.Model
plugin, which generates timestamps attributes automatically. - https://github.com/ask11/backbone-timestamp
- A rich Signal & Slots (Functional Reactive) api using Backbone.
- https://github.com/btakita/backbone-signal
- Computed properties for your Backbone models
- https://github.com/steve8708/Backbone.ComputedModel
- a set of React mixins to allow rich backbone model binding capabilities
- https://github.com/jhudson8/react-backbone
- Adds ajax event events to model/collections which provides event-based request lifecycle bindings.
- https://github.com/jhudson8/backbone-async-event
Strictly typed Backbone model for separating server attributes from states and session data.
- Properties not declared on beforehand are storred as session attributes
- Derived attributes, computed using
get
- Utility methods such as
isComplete
andcompile
- https://github.com/daytona/backbone.intactmodel
- 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
- WebSQL adapter for Backbone with deferred interface
- https://github.com/banyan/backbone.websql.deferred
- 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
- Overrides Backbone.Sync, and allows fetching from remote servers, localstorage, and an in-memory store.
- Allows custom data stores to be added (planned: load data from a js config file).
- Can combine data from multiple sources at fetch time.
- https://github.com/nicoburns/Backbone.Flexisync
- Overrides Backbone.sync to allow fetching and saving to Windows Azure Mobile Services
- Supports queries that are supported by Windows Azure Mobile Services.
- https://github.com/MSOpenTech/backbone-azure-mobile-services
- A framework for mocking up server-side persistence / processing directly in JS.
- Overrides Backbone.sync providing hooks ( per resource, per HTTP verb ) for your own custom persistence / processing scheme.
- https://github.com/biril/backbone-faux-server
- add in middleware functions for a model/collection's sync
- https://github.com/rhysbrettbowen/Backbone.MiddlewareSync
- Dropbox Datastore API adapter for Backbone
- https://github.com/dmytroyarmak/Backbone.dropboxDatastore
- Replacement Backbone sync method to sync to any
Storage
interface. - Allows syncing models and collections to
localStorage
andsessionStorage
. - https://github.com/jacobbuck/backbone.storagesync
- 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
- Add Rails-like nested attributes support for Backbone.Model
- https://github.com/dtmconsultoria/backbone-nested-attributes
- Register collections to share model instances
- https://github.com/rhysbrettbowen/Backbone.ModelRegistry
A pageable, very well tested, drop-in replacement for Backbone.Collection. Supports client-side and server-side pagination, infinite paging, single page and global sorting, and client-side bi-directional event handling. Inspired by Backbone.Paginator, but much better. (Will replace Backbone.Paginator soon)
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
Provides filtering of Backbone collections using facets
- Implements projections for Backbone.Collections. A projection for a collection is an another collection which contains a subset of models from an underlying collection and stays in sync with it.
- By default projections maintain an order induced by underlying collection but an order can be customized with a comparator
- Provides
CappedCollection
projection, a projection restricted by a number of elements - Provides
FilteredCollection
projection, a projection restricted by some predicate - Projections can be composed
- https://github.com/andreypopp/backbone.projections
- Backbone-Fill-Collection makes it easy to generate collections with mock data quickly for prototyping
- Sends requests to filltext.com and inserts the results into a backbone collection on every fetch.
- https://github.com/AdamBrodzinski/backbone-fill-collection
A set of mixins for Backbone models and collections. Models gain the ability to be selected, and collections handle those selections.
- Collections either allow only a single model to be selected (Backbone.Select.One mixin), or cater for multiple selections (Backbone.Select.Many).
- Events communicate selections and deselections to other parts of your application.
- In model-sharing mode, models can be part of more than one collection. Backbone.Select will keep selections of shared models in sync and guarantee consistency in even the most complex scenarios.
Project on Github, documentation | code example | interactive demo (JSBin)
A set of mixins for Backbone models and collections. Adds methods for selecting Backbone models, and for navigating collections.
- Models gain the ability to be selected, and collections handle those selections. See Backbone.Select.
- Models can be shared across multiple collections, and selections are synced among them.
- Methods for navigating a collection are also part of the package, such as
model.ahead(3)
,collection.selectNext()
,collection.prev()
,collection.prevNoLoop()
. - You can enable predefined, common behaviours, like always selecting the first item in a new collection, or selecting the previous model when a selected model is removed.
Backbone.Cycle is built on top of Backbone.Select (see comparison).
Project on Github, documentation | code example | interactive demo (JSBin)
- provides a layer on top of a collection that remembers which models are "selected"
- https://github.com/rhysbrettbowen/Backbone.SelectableCollection
- provides a layer on top of a collection that provides you a filtered view of the collection
- uses original collection as prototype so can be used as regular collection
- allows manual filtering so filters can use global changing values
- https://github.com/rhysbrettbowen/Backbone.CollectionFilter
- Simple, dynamic indexes for greasy-fast filtering of collections.
- https://github.com/activecell/backbone-index
- Lazy-ass caches for Backbone collections and models.
- https://github.com/activecell/backbone-memoize
- A read-only proxy of a Backbone.Collection that can easily be filtered, sorted, and paginated.
- Can add / remove multiple filter predicates at any time
- All of the component pieces are split out into their own modules and can be used on their own if you only need e.g. pagination.
- https://github.com/jmorrell/backbone.obscura
- A small Backbone.Collection plugin for composing the multi-page pagination component.
- https://github.com/seei/backbone.simple-paginator
Backbone.View extension for convenient work with elements, CSS classes and selectors
- Declarative style for elements, selectors and classes used in View
- Cache for elements, so you need not to store them in properties
- Convenient methods for classes manipulations
- Project: https://github.com/backbonex/backbone.view.elements
- API: https://github.com/backbonex/backbone.view.elements/blob/master/README.md
- Tutorial: http://jifeon.blogspot.ru/2015/02/how-to-refactor-spaghetti.html
Plugin for Backbone that makes it easy to manage nested views
- Project: https://github.com/NET-A-PORTER/backbone-assembler
- API: https://github.com/NET-A-PORTER/backbone-assembler#api
Data bind your models and collections to a Backbone.React.Component (a React.Component with some features borrowed from Backbone and Backbone.View)
- Components can be extended (just like Backbone.View)
- Components can receive either a model or a collection, both or many of them
- It relies on reactive updates through props instead of force updating the component
- $el and $ support like in Backbone.View
- Works on the server side by using toString method
- https://github.com/magalhas/backbone-react-component
Migrate to react views in existing backbone application without pain. It allows you:
- To use React component in place of every Backbone View in your application.
- To use your existing Backbone Views as subviews in React components.
- To use your existing Backbone Models as React component state.
- Update React components on Backbone events.
Thus, no total refactoring of your application is required. You can start writing UI with React instantly, replacing your Backbone Views and templates with React components one by one, while keeping your models.
https://github.com/Volicon/react-backbone.glue
A mini Backbone.js plugin to declare and set options on views.
- Use a simple declarative syntax to attach white-listed initialization options directly to your view objects.
- Optionally supply default values for options, and declare required options as such.
- https://github.com/rotundasoftware/backbone.viewOptions
Maintains a simple cache of Backbone views based on the view’s route fragment. Retains the view’s scroll position by default (useful when re-inserting view elements into the DOM). Cache expiry can be set globally and per view instance.
Declarative two-way data binding for Backbone models and views on autopilot.
- Two-way data binding between inputs or elements within views and models with one method call.
- Favors convention over limitless configuration options.
- Bind attributes to elements instead of re-rendering your views.
- Works wonderfully with WebSocket implementations.
- Models and Views stay in sync on auto-pilot.
https://github.com/jbielick/Ligaments
Data binding for Backbone:
- computed model & view attributes & automated dependencies mapping
- declarative view bindings either in the view or in the template
- automatic view updates, with support for common filters
- extensible for custom requirements
Github: https://github.com/gmac/backbone.epoxy
- The plugin implements a two-way data binding between views and models/collections.
- https://github.com/DreamTheater/Backbone.DataBinding
- Help to make a two-way bind from view to models/collections/model properties.
- https://github.com/KKirito/backbone-two-way-bind
Render Backbone.js collections with ease.
- In addition to managing model views, this class supports automatic selection of models in response to clicks, and reordering models via drag and drop.
- Project: http://rotundasoftware.github.io/backbone.collectionView
based on Closure Library's goog.ui.Component
Lightweight view extention/mixin lib for fast and efficient subview rendering and lifecycle management.
- focuses on memory management, rendering optimizations, and convenience workflows.
- provides open/close content regions, and list rendering with filtering/sorting configuration.
- https://github.com/gmac/backbone.containerview
- 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
- Simple nested views handling
view.appendView(".container", anotherview);
- Project: https://github.com/epeli/backbone.viewmaster
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/
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.
Defines the DOM element of a Backbone view right in the template. Keeps the tag name, class name and other attributes of el
out of Backbone.View Javascript code. (Read why.)
Core functionality:
- You can read the markup for the container element of a view directly from its template.
- Works entirely behind the scenes. Just load Backbone.Declarative.Views into your project, and start declaring the view attributes in the HTML of your templates.
- Fully compatible with existing code. Does not interfere with "traditional" ways to define an
el
in Javascript. Does not break existing templates. - Works seamlessly with frameworks built on top of Backbone, such as Marionette.
- Is very fast, thanks to template caching.
Additional benefits:
- Provides a Javascript API for tapping into the template cache. Speeds up view creation, sometimes massively so.
- If you tell it which template compiler to use, it will compile the templates for you and cache the compiled version. Makes your app even faster.
Project on Github, documentation | code example | interactive demo (JSBin)
Exposes Backbone model and collection methods to templates.
- Provides a simple, declarative syntax to define which methods of a model, or of a collection, provide their output to templates.
- Adds hooks for modifying the data before it is handed to a template.
The name of the plugin has turned out to be a bit of a misnomer, though. Backbone.Marionette.Export does not depend on Marionette and is just as useful in projects based on plain Backbone.
Project on Github, documentation | code examples | interactive demo (JSBin).
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 widgets/plugins from your Backbone Views.
- Create Backbone.Views with jQuery syntax:
$('.example').myView([options])
- http://meleyal.github.io/backbone.widget/
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
https://github.com/born2net/StackView/`
Backbone.StackView is a tiny library which provides a Single Page application management of Backbone.Views including animation of fade, popup and sliding of Views. Anyone who is looking to build a SPA, should have a hard look into StackView, will keep your app nice and clean regardless of how big it gets.
https://github.com/andreypopp/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
Global notification mechanism for Backbone.
- Source: https://github.com/fatiherikli/backbone-notifications
- Demo: http://fatiherikli.github.com/backbone-notifications/
Monkey patch Backbone.View to enable fast tap events on touch devices.
https://github.com/nervetattoo/backbone.touch
Easily add keyboard support in your Backbone views
https://github.com/nervetattoo/backbone.keys
Declare a chain of callbacks for a particular event declaration in the View
- this is a mixin, thus it simply extends the
Backbone.View
class you're already using - there's a Rails 3 gem for the mixin
- http://github.com/simsalabim/backbone.view.enhanced_events_declaration
- Elegant Backbone view hierarchy management and eventing
- https://github.com/steve8708/Backbone.ViewManager
- Enhance your Backbone views with stage management
- https://github.com/steve8708/Backbone.ViewModel
- Ember-inspired components: isolated view-like objects for typical UI elements
- Rails-inspired view helpers
- https://github.com/malroc/backbone-component
View class that allows selectors to be bound to helper methods using a shorthand notation that supports binding model fields, view events and collection views with subviews. It has RequireJS support, tests, examples and documentation.
https://github.com/redexp/backbone-dom-view
- Map key events in Backbone views the same as you would normal events
- Auto-unbind on view cleanup
- https://github.com/rpocklin/backbone-hotkeys
Autocomplete with thorough accessibility support and keyboard navigation. Asynchronously fetches models which to filter. Also exposes all its subviews, methods and settings.
- Controller definition and splitting routes by controllers
- https://github.com/artyomtrityak/backbone.controller
- https://github.com/juggy/backrub
- Uses Handlebars.js and Backbone.View to keep your template updated on the page. Based on Sproutcore TemplateView.
Mixin pattern implementation for Backbone
- using prototype inheritance;
- provides ability to specify dependencies;
- fast;
- tested;
- covered;
- project: https://github.com/backbonex/backbone.mix
- quick start: https://github.com/backbonex/backbone.mix/blob/master/README.md
- concept: http://jifeon.blogspot.ru/2015/04/mixins-for-javascript-classes.html
- A small inheritance/mixins library that can be used to replace
Backbone.*.extend
adding support for traits. - Barman: https://github.com/dfernandez79/barman
- Example on how to replace
Backbone.*.extend
: https://gist.github.com/dfernandez79/9318703
Provides a general purpose Event Broker implementation for Backbone based on the Backbone Events API.
jQuery style namespacing (http://docs.jquery.com/Namespaced_Events) of Backbone's Events object
Use delimited notation to reorganize the flat Backbone event stack into a nested hierarchy in order to allow easier implementation of grouped event actions.
Declarative event bindings for Backbone models, collections, subviews, and pub/sub.
A simple way to listen to global triggers in Backbone.js applications.
Pub/sub for Backbone that allows you to listen for events from any object that triggers it. It automatically passes the triggering object to the listener.
Backbone-resolve extends the Backbone.Events object with a method resolve that defines a permanent event. Any listener added to a resolved event is getting automatically called, like if the event was triggered in that same instant.
A simple plugin that adds a new object type for easily binding to events trigged on the Backbone object similar to how you can bind to DOM events with Backbone.View
.
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
- Annotated Source: http://github.com/bergie/VIE/
Backbone.Aura is a decoupled, event-driven architecture on top of Backbone.js for developing widget-based applications
This is not framework. It's just Backbone.js + Require.js + CoffeeScript application structure.
https://github.com/artyomtrityak/backbone-package-template
Backbone.Modal.js removes boilerplate code and adds default behaviors and interactions. You can create a simple dialog modal or complex wizards with stacked modals on top of each other in a few lines of code.
- Homepage: http://awkward.github.io/backbone.modal/
- Source: https://github.com/awkward/backbone.modal
Implement the "swipe to delete" UI-pattern in the Marionette framework.
https://github.com/gaer87/swipe-to-delete
State-Based Routing/Control Manager for Backbone
- 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/fantactuka/backbone-route-filter - Before/after filters for Backbone.Router including async filters support. Coupled with Backbone's test suite to make sure it does not break anything.
-
https://github.com/mojotech/backbone.routerFilters - Rails inspired before and after filters your routers. Can be controlled like Rails with
only
andexcept
. - https://github.com/chirag04/backbone-async-route-filter - Async Before/after filters for Backbone.Router for usecases like authenticate via ajax before any route executes.
- 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/tgriesser/backbone-multi-router - Allows multiple routers which each independently match a routes to the current url. Useful when you have separate features which may match different route patterns on the same history (e.g. one for layout, one for a site tour widget, one for analytics).
- https://github.com/pwhisenhunt/Backbonejs-Router-Title-Helper - Allows easy updates of the document title of your application based on your applications current route.
- https://github.com/involve-it/backbone-query-string-model - Extended Backbone.Model for two-way binding to browser url query string parameters. Useful when you want to add/change/remove url query string parameters in a backbone model way or get model 'change:' event triggered on query string change.
- https://github.com/born2net/BackSteroids - A solid Mobile App architecture for AppGyver's Steroids framework that's powered by Backbone + Steroids (BackSteroids)
- https://github.com/born2net/Backbone-boilerplate-and-StackView - A backbone Single Page Application driven by the great StackView Library and delivers best practices and separation of concern through a Mediator; all wrapped up as a single, ready to start, Backbone boilerplate application.
- 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.
- https://github.com/barc/backbone.giraffe - Backbone.Giraffe is a light and flexible library that extends Backbone.js to new heights. Giraffe's goal is to follow the Backbone philosophy of unopinionated simplicity to provide commonly needed features with few assumptions. It takes a different approach to the problems of route handling, object lifecycles, event aggregation, and view management.
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/marionettejs/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
- https://github.com/fahad19/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
- 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
- Angular inspired live templates
- Ember inspired view hierarchy management and event bubbling
- Plugin architecture for maximum code reusability
- Web components and custom HTML tags for dead simple view hierarchy construction
- https://github.com/steve8708/base
- https://github.com/hegdeashwin/Nebula
- Nebula is an open source application skeleton for a typical Backbone web apps. You can use it to quickly bootstrap your Backbone web application projects.
- https://github.com/hegdeashwin/Protocore
- Protocore is an open source walking application skeleton for a typical unstructured JavaScript/jQuery web apps. You can use it to quickly bootstrap your unstructured JavaScript/jQuery web application projects.
- https://github.com/hegdeashwin/Boneloop
- Boneloop is an open source enterprise edition of Nebula based upon Backbone + Marionette - A scalable and composite application architecture for Backbone.js. Boneloop provides a client-[server]-side stack for building enterprise grade HTML5/Marionette applications. It could be used with any server side like Node.js, Ruby, PHP, JEE, Spring etc. By default it's server side environment comes with Node.js - Loopback (StrongLoop) stack.
- https://github.com/dsheiko/ng-backbone
- ngBackbone is a Backbone extension that unlocks Angular-like programming experience. It consists of a few modules that introduce 2-way binding, testable views, nested views, asynchronous form validators and other features. The sources are written in TypeScript and strictly typed. The project is provided with online book ngBackbone.Book
- https://github.com/ydaniv/backbone-ws
- Backbone on native WebSockets.
- A simple and robust facade for Backbone's Models and Collections for using WebSocket as a transport.
- A simple plugin to give poll capabilities to backbone collections and models that uses a refresh rate to actively fetch data and keep the collection or model updated.
- https://github.com/pedrocatre/backbone-polling
- WAMP protocol for Backbone Models and Collections (WebSocket)
- https://github.com/darrrk/backbone.wamp
- Github: https://github.com/lorenwest/backbone-callbacks
- Works in the browser and in node.js (commonJS)
- 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
- Simple, powerful state management for Backbone.js
- https://github.com/crashlytics/backbone.statemanager
- Declarative syntax for keyboard shortcuts on Views
- leverages Mousetrap
- https://github.com/elasticsales/backbone.mousetrap
- 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
- Helper to add HTTP Basic Authentication to every remote request.
- https://github.com/fiznool/backbone.basicauth
- An easy way to add svg/vml views into your Backbone app.
- https://github.com/tomasAlabes/backbone.raphael
- Beamer is a "platform" for developing extensions for Backbone's prototypes (View, Model, Collection, Router). Its purpose is to ease hooking to backbone's prototypes methods - "initialize", "render" etc and make the extension easier for developers. Above All - Beamer is an Extension Manager - it's suppose to be the package manager of Backbone for plugins.
- https://github.com/orizens/Backbone.Beamer
- Flexible evented lists for Backbone
- https://github.com/steve8708/Backbone.List
- Ridiculously easy event binding for Backbone objects
- https://github.com/steve8708/Backbone.EasyBind
- A dead simple plugin architecture for Backbone
- https://github.com/steve8708/Backbone.Extended
- Role allows you to manage user access depending on his current roles and abilities map
- https://github.com/fantactuka/role
- Adds the ability to use the deferred pattern with models and collections when fetching, saving, or destroying
- Supports jQuery Deferred and Q Promises
- Backwards compatible to passing callbacks and provides same API across libraries.
- https://github.com/arhea/backbone-deferred
- Module system for Backbone.js.
- Make reuse and extend "Backbone.js Class" easy.
- https://github.com/hagiwaratakayuki/backbone-module
- ModalView - View which wraps a Bootstrap modal dialog
- FormView - View which displays a form and allows to edit a Model. Two-way bindings.
- http://amiliaapp.github.io/backbone-bootstrap-widgets/
- Simple sort plugin that enables to sort by different order types: alpha, numeric, date, etc.
- It enables Ascending and Descending (reverse) ordering.
- https://github.com/homeslicesolutions/backbone-collection-sorting/
- Backbone plugin to detect and listen to media queries.
- Useful for defining and responding to breakpoints.
- Source: https://github.com/jacobbuck/backbone.mq
- Backbone support library that provides new
Collection
/Model
/Router
/View
subclasses with enhanced functionality - Combine
events
/defaults
instead of overwriting them when extending a class - Easily require attributes/options, bind methods, template a
View
, and more - Source: https://github.com/machineghost/BackSupport