Knockout.Dirtiable - Areson/Knockout-Extensions GitHub Wiki

Dirty tracking for observables. Adds to values to observables: dirty and clean. dirty is implemented as a computed observable and can be used to track if changes have been made to an object. Calling clean will result the dirty state of the observable.

Example

//The observable starts out clean
var observable = ko.observable("foo").extend({dirtiable: true});

//Now it is dirty: observable.dirty() == true
observable("bar");

//Make it clean!
observable.clean();

A more detail example can be seen here: http://jsfiddle.net/Areson/c4Brz/