Skip to content

Instantly share code, notes, and snippets.

@piotrpalek
Created December 22, 2015 00:17
Show Gist options
  • Save piotrpalek/1173e41998491e034744 to your computer and use it in GitHub Desktop.
Save piotrpalek/1173e41998491e034744 to your computer and use it in GitHub Desktop.
compile layout
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Ember Twiddle',
bodyFlag: false,
actions: {
swapBody() {
let body = '';
if(this.get('bodyFlag')) {
body = '<h1>Some body!!!</h1>';
} else {
body = '<h1>Other body man!</h1>';
}
this.set('customBody', body);
}
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<button {{action "swapBody"}}>Swap body</button>
<br>
{{render-hbs body=customBody}}
<br>
<br>
import Ember from 'ember';
const { observer } = Ember;
export default Ember.Component.extend({
layout: null,
body: '',
handleBodyChange() {
const body = this.get('body');
this.set('layout', Ember.HTMLBars.compile(body));
},
observeBody: observer('body', function() {
Ember.run.scheduleOnce('sync', this, this.handleBodyChange);
})
});
{
"version": "0.4.17",
"EmberENV": {
"FEATURES": {}
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.2.0/ember.debug.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/2.2.0/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.2.0/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment