Observer Fun (S.O. answer)

http://stackoverflow.com/questions/9694897/emberjs-bug-observer-called-when-value-is-changed-but-other-bindings-to-same-v/9696011#9696011

by ud3323

HTML

<script src="http://cloud.github.com/downloads/emberjs/ember.js/ember-latest.min.js"></script>
<script type='text/x-handlebars'>
    {{App.someController.content}} <hr>
    {{App.selectedValue}}
</script>
    <a href="#" onclick="App.set('selectedValue','new value')">change value</a>

JavaScript

App = window.App = Em.Application.create({
    selectedValue: 'old value'
});

App.set('someObj', Em.Object.create({
    appValueBinding: 'App.selectedValue'
}));

App.set('someController', Em.Object.create({
    content: 'abc',
    init: function() {
        App.addObserver('selectedValue', this, 'valueChanged');
    },
    valueChanged: function() {
      console.log('changed');
        console.log("appValue: " + App.getPath('someObj.appValue') + " selectedValue: " + App.get('selectedValue'));
      Ember.run.next(this, function() {
          console.log("appValue at the end of runloop: " + App.getPath('someObj.appValue'));
          this.set('content', App.getPath('someObj.appValue'));
      });
    }
}));