Skip to content

Instantly share code, notes, and snippets.

@frank06
Last active April 25, 2019 17:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save frank06/32e9d3f41398f28b8dad to your computer and use it in GitHub Desktop.
Save frank06/32e9d3f41398f28b8dad to your computer and use it in GitHub Desktop.
parent-child-communication
import Ember from 'ember';
export default Ember.Controller.extend();
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
var array = ['red', 'blue', 'green'];
return array.map(function(color) {
return Ember.Object.create({ color: color })
});
}
});
<h1>Parent-child communication</h1>
{{parent-item items=model }}
import Ember from 'ember';
export default Ember.Component.extend();
<li style="{{if height ' height: 100px;'}}">{{item.color}}</li>
import Ember from 'ember';
export default Ember.Component.extend({
childWrappers: Ember.computed('items.@each', function() {
return this.get('items').map(item => {
return Ember.Object.create({ // wrapper object
item: item,
height: true
});
});
}),
actions: {
click() {
this.get('childWrappers').forEach(wrapper => {
wrapper.toggleProperty('height');
});
}
}
});
<button {{action "click"}}>toggle item height</button>
<ul>
{{#each childWrappers as |wrapper|}}
{{ child-item item=wrapper.item height=wrapper.height }}
{{/each}}
</ul>
body {
margin: 0 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
.height {
height: 100px;
}
{
"version": "0.4.11",
"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