Skip to content

Instantly share code, notes, and snippets.

@tasha-urbancic
Last active August 14, 2019 23:36
Show Gist options
  • Save tasha-urbancic/e8592c5a94ed1fb41a794b3ab38f2d9a to your computer and use it in GitHub Desktop.
Save tasha-urbancic/e8592c5a94ed1fb41a794b3ab38f2d9a to your computer and use it in GitHub Desktop.
Container & UI Components
import Ember from 'ember';
export default Ember.Component.extend({
animalEmojis: {
monkey: '🐒',
elephant: '🐘',
giraffe: '🦒'
},
init() {
this._super(...arguments);
if (this.formatterName === 'add-animal-emoji') {
this.addAnimalEmoji(this.data);
}
},
addAnimalEmoji(data) {
this.set('formattedData', data.map(point => `${point} ${this.animalEmojis[point]}`));
},
});
import Ember from 'ember';
export default Ember.Component.extend({});
import Ember from 'ember';
export default Ember.Component.extend({});
import Ember from 'ember';
export default Ember.Component.extend({
init() {
this._super(...arguments);
this[this.taskName]();
},
getAnimals() {
this.set('data', ['giraffe', 'elephant', 'monkey']);
},
getWeatherDaily() {
this.set('data', ['sunny', 'cloudy', 'rainy']);
}
});
import Ember from 'ember';
export default Ember.Component.extend({
});
import Ember from 'ember';
export default Ember.Component.extend({
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import EmberRouter from '@ember/routing/router';
import config from './config/environment';
const Router = EmberRouter.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
this.route('example');
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({});
import Ember from 'ember';
export default Ember.Route.extend({});
{{#containers/run-task
taskName='getAnimals'
as |data|}}
{{#if @formatterName}}
{{#containers/format-task
data=data
formatterName=@formatterName
as |formattedData|}}
{{yield formattedData}}
{{/containers/format-task}}
{{else}}
{{yield data}}
{{/if}}
{{/containers/run-task}}
{{#containers/run-task
taskName='getWeatherDaily'
as |data|}}
{{#if @formatterName}}
{{#containers/format-task
data=data
formatterName=@formatterName
as |formattedData|}}
{{yield formattedData}}
{{/containers/format-task}}
{{else}}
{{yield data}}
{{/if}}
{{/containers/run-task}}
<ul>
{{#each @listItems as |item|}}
<li>{{item}}</li>
{{/each}}
</ul>
<ol>
{{#each @listItems as |item|}}
<li>{{item}}</li>
{{/each}}
</ol>
{{!-- raw animals and bulleted list --}}
<h3>Use animals and bulleted list:</h3>
{{#containers/load-animals as |data|}}
{{ui/list-bulleted listItems=data}}
{{/containers/load-animals}}
{{!-- formatted animals and bulleted list --}}
<h3>Use formatted animals and bulleted list:</h3>
{{#containers/load-animals
formatterName='add-animal-emoji'
as |formattedData|}}
{{ui/list-bulleted listItems=formattedData}}
{{/containers/load-animals}}
{{!-- raw daily weather and bulleted list --}}
<h3>Use weather and bulleted list:</h3>
{{#containers/load-weather-daily as |data|}}
{{ui/list-bulleted listItems=data}}
{{/containers/load-weather-daily}}
{{!-- raw daily weather and numbered list --}}
<h3>Use weather and numbered list:</h3>
{{#containers/load-weather-daily as |data|}}
{{ui/list-numbered listItems=data}}
{{/containers/load-weather-daily}}
{{#link-to 'example'}}Go To Example{{/link-to}}
{
"version": "0.15.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js",
"ember": "3.4.3",
"ember-template-compiler": "3.4.3",
"ember-testing": "3.4.3"
},
"addons": {
"ember-data": "3.4.2"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment