JSFiddle - React, Tailwind, and code Playground

by krisselden

HTML

<script src="https://github.com/downloads/emberjs/ember.js/ember-0.9.5.js"></script>

JavaScript

Em.LOG_BINDINGS = true;

(function(get, set) {
    var obj, proto, a, b, selectionChanged;
    Ember.run(function() {
        obj = {
            selection: undefined
        };

        selectionChanged = 0;

        Ember.addObserver(obj, 'selection', function() {
            console.log('selectionChanged', get(obj, 'selection'));
            selectionChanged++;
        });

        proto = {
            obj: obj,
            changeSelection: function(value) {
                set(this, 'selection', value);
            }
        };
        Em.bind(proto, 'selection', 'obj.selection');

        a = Em.create(proto);
        b = Em.create(proto);
    });

    Em.run(function() {
        console.log('set a.selection = "a"');
        set(a, 'selection', 'a');
    });

    Em.run(function() {
        console.log('set b.selection = "b"');
        set(b, 'selection', 'b');
    });

    Em.run(function() {
        console.log('set a.selection = "a"');
        set(a, 'selection', 'a');
    });
    
    $(document.body).append('selectionChanged: ' + selectionChanged + '<br>selection: ' + get(obj, 'selection'));

}(Em.get, Em.set));