Skip to content

Instantly share code, notes, and snippets.

@ctusch
Last active November 25, 2015 18:02
Show Gist options
  • Save ctusch/e6aebd6d44e5c49f8c3e to your computer and use it in GitHub Desktop.
Save ctusch/e6aebd6d44e5c49f8c3e to your computer and use it in GitHub Desktop.
Ember services used with observers
import Ember from 'ember';
export default Ember.Controller.extend({
myService: Ember.inject.service("my-service"),
actions: {
increaseProperty: function() {
this.set("myService.someProperty", this.get("myService.someProperty") + 1);
}
}
});
<button {{action 'increaseProperty'}}>Increase service property</button>
{{my-component1}}
{{my-component2}}
import Ember from 'ember';
export default Ember.Component.extend({
myService: Ember.inject.service("my-service"),
hasChanged: false,
onChange: function() {
this.set("hasChanged", true);
}.observes("myService.someProperty")
});
Component 1: Service property has changed: {{hasChanged}}
import Ember from 'ember';
export default Ember.Component.extend({
myService: Ember.inject.service("my-service"),
hasChanged: false,
onChange: function() {
this.set("hasChanged", true);
}.observes("myService.someProperty")
});
Component 2: Service property value: {{myService.someProperty}}
<br>
Component 2: Service property has changed: {{hasChanged}}
import Ember from 'ember';
export default Ember.Service.extend({
someProperty: 1
});
{
"version": "0.4.16",
"EmberENV": {
"FEATURES": {}
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.1.0",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/2.1.0/ember-data.js",
"ember-template-compiler": "2.1.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment