Skip to content

Instantly share code, notes, and snippets.

@ASH-Anthony
Forked from ykaragol/components.my-component.js
Last active July 30, 2018 22:51
Show Gist options
  • Select an option

  • Save ASH-Anthony/e14c5724fb8d9eba420556738be65225 to your computer and use it in GitHub Desktop.

Select an option

Save ASH-Anthony/e14c5724fb8d9eba420556738be65225 to your computer and use it in GitHub Desktop.
recursive-component-usage
import Ember from 'ember';
export default Ember.Component.extend({
stuff:Ember.computed.alias('items'),
sortOrder:['name'],
sortList:Ember.computed.sort('items', 'sortOrder'),
actions:{
toggleSort(){
if((this.get('sortOrder')[0])==="name"){
this.set('sortOrder', ['name:desc'])
}else{
this.set('sortOrder', ['name'])
}
}
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
items:[{name:'First Level-1', items:[{name:'Second Level-1-1'}, {name:'Second Level-1-2'}]},
{name:'First Level-2', items:[{name:'Second Level-2-1', items:[{name:'Third Level-2-1-1'},{name:'Third Level-2-1-2'},{name:'Third Level-2-1-3', items:[{name:'Forth Level-2-1-3-1'}]}]}, {name:'Second Level-2-2'}]},
{name:'First Level-3'}]
});
{{my-component items=items}}
<button type="button" onclick={{action 'toggleSort'}}>Toggle Sort Order (asc/desc)</button>
stuff length: {{stuff.length}}
{{#each sortList as |item|}}
<li>{{item.name}}
{{#if item.items}}
<ul>
{{my-component items=item.items}}
</ul>
{{/if}}
</li>
{{/each}}
{
"version": "0.10.6",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.18.0",
"ember-data": "2.18.0",
"ember-template-compiler": "2.18.0",
"ember-testing": "2.18.0"
},
"addons": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment