I have the intuition that once one Observer is triggered the property the Observer is observing may have changed its value already… maybe for another previously executed Observer.
So my question/suggestion is having the possibility of knowing the new value set to the observed property that has triggered the Observer:
onPropertyChanges: Ember.observer('property1', 'property2', function(changesOnProperties){
let oldValueOnProperty1 = changesOnProperties.property1.oldValue;
let newValueOnProperty1 = changesOnProperties.property1.newValue;
...
})
Basically you would create computed property and use set hook to capture old and new value. You would then save those values. I used changedProperties there since it resembled yours changesOnProperties.
Observers have fallen out of favor in general, so I wouldn’t expect any move from the core team that restores them. What you’re trying to do could be accomplished with beforeObservers but [they were deprecated in Ember 1.12]((Ember.js - Deprecations).
In component-land, the before– and after values of properties can be had by using the lifecycle hooks that were introduced in 1.13. I used these successfully to replace observers but they only work in components, as their name suggests