Skip to content

Instantly share code, notes, and snippets.

@cafreeman
Last active July 19, 2018 21:29
Show Gist options
  • Save cafreeman/0067ce0dc67f46b4385f4507c239ad0e to your computer and use it in GitHub Desktop.
Save cafreeman/0067ce0dc67f46b4385f4507c239ad0e to your computer and use it in GitHub Desktop.
Contextual Components Example
import Component from '@ember/component';
export default Component.extend({
classNames: ['header']
});
import Component from '@ember/component';
import { assert } from '@ember/debug';
export default Component.extend({
classNames: ['container'],
init() {
this._super(...arguments);
// This is commented out because otherwise the app will crash as soon as it renders
// assert("someArg should be blue", this.someArg === 'blue');
}
});
import Component from '@ember/component';
export default Component.extend({
classNames: ['bg-red']
});
import Ember from 'ember';
export default Ember.Controller.extend({
});
.container {
background-color: yellow;
}
.container .header {
font-weight: bold;
}
.container .bg-red {
background-color: red;
}
{{#outer-component someArg="red" as |things|}}
{{log things}}
{{things.message}}
{{#things.header}}
This is a header
{{/things.header}}
{{#things.red}}
This should have a red background
{{/things.red}}
{{/outer-component}}
{{!-- {{#header-component}}
This is a header
{{/header-component}}
{{#red-background}}
This should have a red background
{{/red-background}} --}}
This is the outer component.
<br>
<br>
{{yield
(hash
message="hello world"
header=(component 'header-component' class="inside-container")
red=(component 'red-background')
)
}}
{
"version": "0.15.0",
"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.2.2",
"ember-template-compiler": "3.2.2",
"ember-testing": "3.2.2"
},
"addons": {
"ember-data": "3.2.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment