Skip to content

Instantly share code, notes, and snippets.

@Vassi
Last active September 4, 2015 13:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Vassi/e811297e55ad35c42788 to your computer and use it in GitHub Desktop.
Save Vassi/e811297e55ad35c42788 to your computer and use it in GitHub Desktop.
Private Binding
import Ember from 'ember';
export default Ember.Controller.extend({
service: Ember.inject.service('thing-service'),
color: Ember.computed.alias('service.color'),
appName:'Ember Twiddle',
actions: {
changeColor() {
if (this.get('color') === 'blue') {
console.log('setting to red');
this.get('service').setColor('red');
}
else {
console.log('setting to blue');
this.get('service').setColor('blue');
}
}
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
<p>{{color}}</p>
<button {{action 'changeColor'}}>Change Color</button>
import Ember from 'ember';
var obj = Ember.Object.extend({
internalValue: 'blue'
});
export default Ember.Service.extend({
init() {
var self = this;
var internalVal = obj.create();
this.color = internalVal.get('internalValue');
internalVal.addObserver('internalValue', function(sender) {
console.log('internalValue changed ' + sender.get('internalValue'));
self.set('color', sender.get('internalValue'));
});
this.setColor = function(colorName) {
internalVal.set('internalValue', colorName);
};
}
});
{
"version": "0.4.10",
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.9/ember.debug.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/1.13.11/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.9/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment