Skip to content

Instantly share code, notes, and snippets.

@jon-hall
jon-hall / components.my-component.js
Last active December 24, 2019 09:34
hidden component poc
import Ember from 'ember';
export default Ember.Component.extend({
classNames: ['some-class'],
attributeBindings: ['style'],
style: 'display: none',
x: 5,
@jon-hall
jon-hall / controllers.application.js
Created November 27, 2019 11:36
super computeds
import Ember from 'ember';
const A = Ember.Object.extend({
value: 5,
comp: Ember.computed('value', function() {
return `val: ${this.value}`;
})
});
const B = A.extend({
@jon-hall
jon-hall / controllers.application.js
Created January 30, 2019 16:42
Injecting services into EmberObjects
import Ember from 'ember';
import { inject as service } from '@ember/service';
const MyThing = Ember.Object.extend({
router: service('-routing')
});
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
@jon-hall
jon-hall / components.zoom-container.js
Last active January 24, 2019 10:32
Zoom container
import Ember from 'ember';
export default Ember.Component.extend({
classNames: ['zoom-container'],
zoom: 1,
containerStyle: Ember.computed(
'zoom',
function() {
import Ember from 'ember';
const FOCUSABLE_SELECTOR = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';
export default Ember.Component.extend({
enabled: true,
focusChild(index) {
const focusables = this.element.querySelectorAll(
FOCUSABLE_SELECTOR
@jon-hall
jon-hall / controllers.application.js
Created November 2, 2018 11:04
demo: default computed behaviour is get only
import Ember from 'ember';
export default Ember.Controller.extend({
selectedValue: 'initial value',
computedValue: Ember.computed(
'selectedValue',
function() {
if(this.get("selectedValue")) {
return this.get("selectedValue");
@jon-hall
jon-hall / controllers.application.js
Created October 31, 2018 13:09
controller state persistence
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
queryParams: ['a'],
qpHistory: '',
qpObs: Ember.on('init', Ember.observer(
'model.a',
@jon-hall
jon-hall / components.test-comp.js
Created October 4, 2018 09:51
computed macros template property order issue
import Ember from 'ember';
import computed from 'ember-macro-helpers/computed';
import raw from 'ember-macro-helpers/raw';
function switchCase(
property,
cases,
defaultValue
) {
return computed(
@jon-hall
jon-hall / controllers.application.js
Last active July 23, 2018 09:21
Detecting route rendering
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
@jon-hall
jon-hall / controllers.application.js
Created April 19, 2018 07:00
Service injection in Router.map
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});