Automatic Value-Object Mediation with JS Signals

 Mar, 03 - 2012   no comments   Uncategorized

Just a little something I cooked up tonight after a few beers with Lee:

ModelMediator = function (model) {
  this.__onChanged__ = new Dictionary();

  for (var key in model)
    this.__defineSetter__(key, function (arg) { this.set(model, key, arg) });
    this.__defineGetter__(key, function () { this.get(model, key) });
    this.__onChanged__.set(key, new signals.Signal());

ModelMediator.prototype.get = function (model, key)
  return model[key]

ModelMediator.prototype.set = function (model, key, value)
  model[key] = value;
  this.__onChanged__.get(key).dispatch({model:model, key:key, value:value});

Dictionary class here

Downloading and understanding JS Signals is left as an exercise for the reader.

Related articles

Leave a Reply

Your email address will not be published. Fields with * are mandatory.