Skip to content

Instantly share code, notes, and snippets.

@xcambar
Forked from Vassi/application.controller.js
Created September 4, 2015 13:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xcambar/dfeb22d5b1cba2784f91 to your computer and use it in GitHub Desktop.
Save xcambar/dfeb22d5b1cba2784f91 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'),
actions: {
changeColor() {
const color = this.get('service.color');
const colors = ['red', 'blue'];
const newColor = colors
.reject((v)=> { return color === v})
.get('firstObject');
this.set('service.color', newColor);
}
}
});
<h1>Color: <code>{{service.color}}</code> </h1>
<button {{action 'changeColor'}}>Change Color</button>
import Ember from 'ember';
const state = Ember.Object.extend({
color: 'blue'
});
export default Ember.Service.extend({
init() {
const serviceState = state.create();
Ember.defineProperty(this, 'color', Ember.computed({
get() {
return serviceState.get('color');
},
set(k, value, previous) {
serviceState.set('color', value);
this.notifyPropertyChange('color');
}
}).volatile());
}
});
{
"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-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