Skip to content

Instantly share code, notes, and snippets.

@gojefferson
Last active October 2, 2018 21:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gojefferson/a6b4b45f4b6bb647ce1631373e5196b0 to your computer and use it in GitHub Desktop.
Save gojefferson/a6b4b45f4b6bb647ce1631373e5196b0 to your computer and use it in GitHub Desktop.
named yields
import Ember from 'ember';
export default Ember.Component.extend({
});
import { computed } from "@ember/object";
import Ember from 'ember';
const RenderSlot = Ember.Component.extend({
slotName: "",
currentYield: "",
shouldRender: computed("slotName", "currentYield", function () {
return this.slotName && this.slotName === this.currentYield;
})
});
RenderSlot.reopenClass({
positionalParams: ['slotName', 'currentYield']
});
export default RenderSlot;
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
{{#page-layout as | slot | }}
{{#render-slot "header" slot}}
This is the header!
{{/render-slot}}
{{#render-slot "body" slot}}
Here's some content for the body
{{/render-slot}}
{{#render-slot "footer" slot}}
Don't forget the footer!
{{/render-slot}}
{{/page-layout}}
<h1>{{yield "header"}}</h1>
<p>{{yield "body"}}</p>
<br><br>
<br><br>
<br><br>
<small>{{yield "footer"}}</small>
{{#if shouldRender}}
{{yield}}
{{/if}}
{
"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