Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save samtsai/8de219bdeda401bd95651ddcb375390e to your computer and use it in GitHub Desktop.
Save samtsai/8de219bdeda401bd95651ddcb375390e to your computer and use it in GitHub Desktop.
Component Lifecycle Hooks
import Ember from 'ember';
export default Ember.Component.extend({
init(options) {
console.log('init', options);
},
didUpdateAttrs(options) {
console.log('didUpdateAttrs', options);
},
willUpdate(options) {
console.log('willUpdate', options);
},
didReceiveAttrs(options) {
console.log('didReceiveAttrs', options);
},
willRender() {
console.log('willRender');
},
didRender() {
console.log('didRender');
},
didInsertElement() {
console.log('didInsertElement');
Ember.run.scheduleOnce('afterRender', function () {
console.log('afterRender');
});
},
didUpdate(options) {
console.log('didUpdate', options);
},
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Ember Twiddle',
data: {
a: [{a: 1}, {b: 2}, {c: 3}],
b: "text"
}
});
<div>
<p>appName: {{input type="text" value=appName}}</p>
<p>Triggers: didUpdateAttrs, didReceiveAttrs, willUpdate, willRender, didUpdate, didRender</p>
</div>
<div>
<p>data.a.firstObject.a: {{input type="text" value=data.a.firstObject.a}}</p>
<p>Triggers: willUpdate, willRender, didUpdate, didRender</p>
</div>
<div>
<p>data.a.b: {{input type="text" value=data.b}}</p>
<p>Triggers: willUpdate, willRender, didUpdate, didRender</p>
</div>
<hr>
{{my-component name=appName data=data}}
<p>name: {{name}}</p>
<p>attrs.data.a.firstObject.a: {{attrs.data.a.firstObject.a}}</p>
<p>attrs.data.b: {{attrs.data.b}}</p>
{
"version": "0.4.7",
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.6/ember.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/1.13.7/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.6/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment