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}); }
Downloading and understanding JS Signals is left as an exercise for the reader.