a little data-structure for managing event-oriented relationships
JavaScript
Switch branches/tags
Nothing to show
Pull request Compare This branch is 4 commits ahead of tedsuo:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE
README.md
package.json
ref_binder.js

README.md

ref-binder

little data-structure for managing event-oriented relationships

API likely to change. :)

Example Usage

var RefBinder = require('ref-binder');

// currently assumes you are using backbone
var model = new Backbone.Model();
var view = new Backbone.View();

// create a set of references for a view
var refs = new RefBinder(view);

// bind model events to view methods
refs.set('item1',model,{
  'change': 'render',
  'fetch': 'showLoader',
  'sync': 'hideLoader'
});

// get a reference to the bound model object
var item1 = refs.get('item1');

// properly de-reference and unbind the model
refs.unset('item1');

// dereference everything when you are ready to destroy the view
refs.unsetAll();


// Example of a Backbone view using ref-binder

var TodoListView = Backbone.View.extend({

  initialize: function(o){
    this.models = new RefBinder(this);
    this.setTodos(o.todo_items);
  },

  getTodos: function(){
    return this.models.get('todos');
  },

  setTodos: function(todo_items){
    this.models.set('todos',todo_items,{
     'change':  'render',
     'fetch':  'showLoadingGraphic',
     'sync':  'hideLoadingGraphic',
    });
  },

  destroy: function(){
    this.models.unsetAll();
    this.remove();
  }
  
});