All Versions
Latest Version
Avg Release Cycle
7 days
Latest Release
2628 days ago

Changelog History
Page 1

  • v1.0.5 Changes

    July 25, 2015
    • ๐Ÿ›  fix specific XHRAware mixin... modelXHRAware({read: "fetching", create: "creating", update: "updating"}) - 7a7b2c5


  • v1.0.4 Changes

    July 25, 2015
    • ๐Ÿ› bug fix: don't try to rebind to new model/collection if it does not exist - 068f9bc


  • v1.0.3 Changes

    June 01, 2015
    • ๐Ÿ›  fix AMD reference - 926715a


  • v1.0.2 Changes

    May 26, 2015
    • #4 - Errors on script initialization
    • ๐Ÿ›  fix bug when using the model/collection declaritive event bindings - 3e84c88
    • null model check - b7f349d
    • ensure state.loading is valid on first render (getInitialState response) - 09e1b2d


  • v1.0.1 Changes

    May 09, 2015
    • ๐Ÿ› bug fix: in-browser source include loading - 14f1402


  • v1.0.0 Changes

    April 17, 2015

    There are no longer initialization requirements for react-backbone. Now the dependencies are listed as peerDependencies

    • "react": "*",
    • "backbone": "*",
    • "underscore": "*",
    • "react-mixin-manager": ">=1.0",
    • "react-events": ">=1.0",
    • "backbone-xhr-events": ">=1.0"

    So, you must include all of the modules as dependencies of your project.

    The only initialization you need to do is just require the module

    var ReactBackbone = require('react-backbone');

    All input components are now available on ReactBackbone.input rather than Backbone.input. for example:

    var ReactBackbone = require('react-backbone');
    var Text = ReactBackbone.input.Text;

    The following utility functions are now located on ReactBackbone

    • getModelKey
    • modelIndexErrors
    • getModelValue
    • setModelValue

    ๐Ÿšš Also, the with-deps files have been removed as the dependencies are handled intrinsicly.


  • v0.26.0 Changes

    March 31, 2015
    • overhaul the loadWhile mixin - 2e52ce9

    ๐Ÿ”ฆ Exposes the loadWhile(callback[, loadingStateAttribute]) function

    • callback: the function that will be executed containing any XHR activity to be monitored
    • loadingStateAttribute: the attribute ("loading" if not provided) to reference the loading state

    Set the component state attribute ("loading" or loadingStateAttribute if provided) to a truthy value while any XHR activity is in progress as long as it was initiated during the execution of the callback function.

          mixins: ['loadWhile'],
          doSomething: function() {
            this.loadWhile(function() {
              // the "loading" attribute will be truthy as long as any of these fetches are in progress


  • v0.25.0 Changes

    March 30, 2015
    • โž• add parameter awareness to the XHRAware mixin - aa1ba95

    You can provide an optional argument to the mixin allowing you to specificy individual XHR events and the associated state attribute. The key for each entry is the XHR event type and the value is the state attribute to indicate the XHR activity. For example:

          mixins: ['collectionXHRAware({read: "fetching"})'],

    Will only listen for read events (fetch) and will use state.fetching instead of the standard state.loading.

    For more details on all XHR events look here


  • v0.24.1 Changes

    March 27, 2015
    • โž• added onInvalid option awareness to the modelPopulate function - 7eddaaa
    • โœ‚ remove jquery references - 9f53497

    This is backwards compatible but you can now provide an onInvalid attribute to the modelPopulate options which will be called if the model fails validation. The populated attributes object will be provided.

    this.modelPopulate(function(model) {
        // the model is valid
      }, {
        onInvalid: function(attributes) {
          // the model failed the validation check


  • v0.24.0 Changes

    March 26, 2015
    • โœ‚ remove jquery as a dependency - acce9b0

    ๐Ÿšš If you are using webpack you can easily remove jquery from your app (assuming you don't need it for other purposes) by doing the following

    ๐Ÿ“ฆ package.json

      dependencies: {
        // or some other $.ajax implementation
        "component-ajax": "0.0.2",
        "exoskeleton": "^0.7.0",

    webpack.config.js (npm install

        plugins: [
            new webpack.IgnorePlugin(/^jquery$/)
        loaders: [
            { test: /exoskeleton\.js$/,    loader: "imports?define=>false"}
        resolve: {
          alias: {
            backbone: 'exoskeleton/exoskeleton.js'

    When initializing react-backbone

    var ajax = require('component-ajax');
    Backbone.ajax = function() {
      return ajax.apply(this, arguments);