Skip to content

Instantly share code, notes, and snippets.

@GCheung55
GCheung55 / controllers.application.js
Last active January 30, 2019 20:55
Demonstrate nested routes with model-refreshing query params
import Controller from '@ember/controller';
export default Controller.extend({
appName: 'Ember Twiddle',
queryParams: [
// The query param `user-id` will update the computed property `userId`.
{ 'user-id': 'userId' }
],
@GCheung55
GCheung55 / controllers.application.js
Created January 10, 2019 01:05
Tracking error page
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
@GCheung55
GCheung55 / components.my-component.js
Last active January 9, 2019 21:34
Computed Property Set/Get
import Ember from 'ember';
import { computed } from '@ember/object';
export default Ember.Component.extend({
myProp: computed({
// Returns a default value when the component isn't given a myProp property.
get() { return 'No Prop'; },
// Returns a default value if val is undefined.
set(key, val) { return val === undefined ? 'No Prop' : val; }
@GCheung55
GCheung55 / controllers.application.js
Created January 7, 2019 21:57
Label Input animation
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
@GCheung55
GCheung55 / components.my-consumer-component.js
Last active November 25, 2018 08:28
Demonstrate ember-provider-consumer Addon
import ConsumerComponent from 'ember-provider-consumer';
import MyProviderComponent from './my-provider-component';
export default ConsumerComponent.extend({
providerComponent: MyProviderComponent
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
arr: [1, 2, 3],
actions: {
sort() {
this.set('arr', this.get('arr').sort());
import Ember from 'ember';
import EmberObject, { computed, get } from '@ember/object';
export DateLogs = Ember.Object.extend({
model: null,
foodLogs: computed('model.foodLogs', function() {
return get(this, 'model.foodLogs')
}),
@GCheung55
GCheung55 / components.consumer-component.js
Last active September 26, 2018 18:58
Demonstrate Provider/Consumer components
import Ember from 'ember';
import ProviderComponent from './provider-component';
import { computed } from '@ember/object';
export default Ember.Component.extend({
tagName: '',
provider: computed(function() {
// Need to figure out another way because nearestOfType has a deprecation:
// use `yield` and contextual components for composition instead
return this.nearestOfType(ProviderComponent);
@GCheung55
GCheung55 / components.linear-input.js
Created September 21, 2018 23:13
Demonstrate action closures
import Ember from 'ember';
import { get } from '@ember/object';
export default Ember.Component.extend({
onChange: null,
actions: {
valueChange() {
const onChange = get(this, 'onChange');
console.log('linear-input', this, onChange);
@GCheung55
GCheung55 / controllers.application.js
Last active August 30, 2018 18:34
Demonstrate setting value on service when query param changes
import Ember from 'ember';
import { inject as service } from '@ember/service';
import { alias } from '@ember/object/computed';
export default Ember.Controller.extend({
mobileView: service(),
appName: 'Ember Twiddle',
queryParams: [ 'webview' ],