Skip to content

Instantly share code, notes, and snippets.

@neborn
neborn / components.content-list-header.js
Last active January 28, 2017 02:02
Contextual Component List
import Ember from 'ember';
export default Ember.Component.extend({
});
import Ember from 'ember';
export default Ember.Component.extend({
});
@neborn
neborn / components.my-selector.js
Last active February 2, 2017 22:02
Selector Demo
import Ember from 'ember';
export default Ember.Component.extend({
selectionEnabled: false,
query: '',
items: Ember.computed(() => [
{ title: 'A' }, { title: 'B' }, { title: 'C' }, { title: 'D' }
]),
selectedItems: Ember.computed(() => []),
notSelectedItems: Ember.computed('selectedItems.[]', 'items.[]', function() {
@neborn
neborn / components.a-child.js
Last active May 23, 2017 23:03
Ways to Trigger a Parent's Actions
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
oneWay() {
this.sendAction('anAction', 'One way was used');
},
anotherWay() {
this.attrs.anAction('Another way was used');
},
@neborn
neborn / components.bem-component.js
Last active February 5, 2017 05:41
New Twiddle
import Ember from 'ember';
// I made this a component for the convenience of the example (i.e. to use it direclty with the component helper when yielding). But it would probably be better suited to being a mixin.
export default Ember.Component.extend({
classNameBindings: ['bemClassNames'],
bemBlock: '',
bemElement: '',
bemModifier: '',
bemClassNames: Ember.computed('bemBlock', 'bemElement', 'bemModifiers', function() {
const bemElement = this.get('bemElement');
@neborn
neborn / controllers.application.js
Created February 6, 2017 22:42
Alias vs OneWay vs ReadOnly
import Ember from 'ember';
export default Ember.Controller.extend({
originalProperty: 'Hello',
aliasProperty: Ember.computed.alias('originalProperty'),
oneWayProperty: Ember.computed.oneWay('originalProperty'),
readOnlyProperty: Ember.computed.readOnly('originalProperty')
});
@neborn
neborn / components.my-component.js
Last active February 17, 2017 00:58
Complex Types in Component Definition
import Ember from 'ember';
export default Ember.Component.extend({
myArray: [],
actions: {
addItem() {
this.get('myArray').addObject({});
}
}
});
@neborn
neborn / components.my-component.js
Created February 17, 2017 17:22
Class vs ClassNames
import Ember from 'ember';
export default Ember.Component.extend({
});
@neborn
neborn / components.my-component.js
Last active February 22, 2017 20:27
Overriding a computed boolean property
import Ember from 'ember';
export default Ember.Component.extend({
myBoolean: true,
notMyBoolean: Ember.computed.not('myBoolean'),
actions: {
toggleBoolean(prop) {
this.toggleProperty(prop);
}
}
import Ember from 'ember';
export default Ember.Component.extend({
myName: "My Component",
myClickHandler() {
console.log(this.get('myName'));
}
});