Skip to content

Instantly share code, notes, and snippets.

@Serabe
Forked from btecu/components.x-child.js
Created July 15, 2016 12:18
Show Gist options
  • Select an option

  • Save Serabe/bb4338ab71e95ea7f361d0932857ee96 to your computer and use it in GitHub Desktop.

Select an option

Save Serabe/bb4338ab71e95ea7f361d0932857ee96 to your computer and use it in GitHub Desktop.
Component Lifecycle Mut
import Ember from 'ember';
export default Ember.Component.extend({
init() {
this._super(...arguments);
console.log('\ninit', this.get('vInit'));
this.set('vInit', 99);
},
didReceiveAttrs() {
this._super(...arguments);
console.log('\ndidReceiveAttrs', this.get('vDidReceiveAttrs'));
this.set('vDidReceiveAttrs', 99);
},
willRender() {
this._super(...arguments);
console.log('\nwillRender', this.get('vWillRender'));
this.set('vWillRender', 99);
},
didInsertElement() {
this._super(...arguments);
//console.log('\ndidInsertElement', this.get('vDidInsertElement'));
//this.set('vDidInsertElement', 99);
},
actions: {
inc(prop) {
this.incrementProperty(prop);
}
}
});
import Ember from 'ember';
const {
Controller,
observer
} = Ember;
export default Controller.extend({
appName: 'Ember Twiddle',
vInit: 1,
vDidReceiveAttrs: 2,
vWillRender: 3,
vDidInsertElement: 4,
oInit: observer('vInit', function() {
console.log('init changed value', this.get('vInit'));
}),
oDidReceiveAttrs: observer('vDidReceiveAttrs', function() {
console.log('didReceiveAttrs changed value', this.get('vDidReceiveAttrs'));
}),
oWillRender: observer('vWillRender', function() {
console.log('willRender changed value', this.get('vWillRender'));
}),
oDidInsertElement: observer('vDidInsertElement', function() {
console.log('didInsertElement changed value', this.get('vDidInsertElement'));
})
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
<br>
<br>
{{x-child
vInit=vInit
vDidReceiveAttrs=vDidReceiveAttrs
vWillRender=vWillRender
vDidInsertElement=vDidInsertElement}}
<ul>
<li>{{vInit}}</li>
<li>{{vDidReceiveAttrs}}</li>
<li>{{vWillRender}}</li>
<li>{{vDidInsertElement}}</li>
</ul>
<button {{action "inc" "vInit"}}>
Increment vInit
</button>
{
"version": "0.10.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.6.0",
"ember-data": "2.6.1",
"ember-template-compiler": "2.6.0"
},
"addons": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment