This repository was archived by the owner on May 15, 2023. It is now read-only.
  
  
  - 
                Notifications
    You must be signed in to change notification settings 
- Fork 16
Detecting Variable Changes
        Stephen Oney edited this page Dec 29, 2013 
        ·
        8 revisions
      
    ###onChange
When constraints affect some non-DOM property (e.g. RaphaelJS objects or SVG objects), a more general mechanism can be used. .onChange(callback), for instance, specifies to call callback whenever a constraint's value is invalidated (see the "Internals" section for a discussion on invalidation). callback can then perform any necessary updates.
var c = cjs.constraint(1);
c.onChange(function(new_val, old_val) {
    console.log("was :" + old_val +", now: " + new_val);
}); // was: null, now: 1
c.set(2); // was: 1, now: 2
.onChange(callback) hooks can be removed with the .offChange(callback) function.
###liven
cjs.liven(func) automatically calls func whenever any constraints that func fetches are invalidated. For instance:
var x = cjs.constraint(0),
    y = cjs.constraint(0);
var live_fn = cjs.liven(function() {
    var x_val = x.get(),
        y_val = y.get();
    some_other_library.setPosition(x_val, y_val);
});
The above snippet will automatically call some_other_library.setPosition whenever x or y changes.