How to manually set an object state to clean (saved) using ember-data

Looking at ember-data the uncommitted state has a 'becameClean' event which consequently sets the record as loaded.saved.

This should do the trick


Solution for Ember Data 1.0.0-beta.7:

// changing to loaded.updated.inFlight, which has "didCommit" 
// clear array of changed (dirty) model attributes
record.set('_attributes', {});
// changing to loaded.saved (hooks didCommit event in "inFlight" state)

I've searched the source code of Ember-data and I've found that loaded.saved state has a setup function that checks whether a model is clean, before setting "saved" state. If it is not clean, then it rejects a request to change state and returns to loaded.updated.uncommitted.

So you have to clean model._attributes array, which keeps attributes names and Ember will let you change state manually.

I know it isn't very good solution, because is needed to set private property of a model, but I've not found any other solutions yet.