Skip to content

Instantly share code, notes, and snippets.

View mehulkar's full-sized avatar

Mehul Kar mehulkar

View GitHub Profile
@mehulkar
mehulkar / controllers.application.js
Last active October 1, 2018 21:47
renderTemplate-disconnectOutlet
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
@mehulkar
mehulkar / components.foo-bar.js
Last active October 3, 2018 22:01
Array properties on components
import Ember from 'ember';
export default Ember.Component.extend({
collection: [], // will be shared across component instances since it gets defined on the prototype
shouldPush: false,
init() {
this._super(...arguments);
// fix this by defining the `collection` array in the init hook
@mehulkar
mehulkar / controllers.application.js
Created October 18, 2018 23:36
empty array truthiness
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
emptyList: [],
notEmptyList: [1]
});
@mehulkar
mehulkar / components.my-component.js
Created December 18, 2018 23:22
CSS styles macro
import Ember from 'ember';
import { computed } from '@ember/object';
const styles = function() {
// decompose string args to an object
const stylesObj = Array.from(arguments).reduce((memo, arg) => {
const [rule, dependentKey] = arg.split(':');
memo.dependentKeys.push(dependentKey)
memo.rules[rule] = dependentKey;
return memo;
@mehulkar
mehulkar / controllers.application.js
Last active December 22, 2018 02:48
promise-proxies
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
@mehulkar
mehulkar / controllers.application.js
Last active January 3, 2019 23:48
deferred promise
import Ember from 'ember';
import { MockModel } from '../utils/mock-model';
import { observer } from '@ember/object';
export default Ember.Controller.extend({
actions: {
resolve() {
const proxy = this.get('proxy');
proxy.get('resolveFn')({ id: 100 });
},
import Ember from 'ember';
import { Promise as EmberPromise } from 'rsvp';
export default Ember.Component.extend({
classNames: ['foo-bar'],
wait: 0,
text: '',
toDisplay: null,
willInsertElement() {
import Ember from 'ember';
export default Ember.Component.extend({
});
import Ember from 'ember';
import { computed } from '@ember/object';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
init() {
this._super(...arguments);
this.set('someProp', {
bar: { yes: 'bar' },
baz: { yes: 'baz' }
@mehulkar
mehulkar / components.render-post.js
Last active July 24, 2019 18:38
Component-Reuse
import Ember from 'ember';
import { guidFor } from '@ember/object/internals';
export default Ember.Component.extend({
init() {
this._super(...arguments);
this.set('prop', this.post);
},
didReceiveAttrs() {