Skip to content

Instantly share code, notes, and snippets.

View HenryVonfire's full-sized avatar

HenryVonfire

View GitHub Profile
import Ember from 'ember';
export default Ember.Component.extend({
items:[
{id:1, label: "project1", isExpanded: false, children: [
{label: "unit1"},
{label: "unit2"},
{label: "unit3"}
]},
{id:2, label: "project2", isExpanded: false, children: []},
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Ember Twiddle',
actions: {
test() {
this.model.forEach(person => person.rollbackAttributes());
this.store.push({
data: {
// primary data for single record of type `Person`
if(!("valueAsDate" in HTMLInputElement.prototype)){
Object.defineProperty(HTMLInputElement.prototype, "valueAsDate", {
get: function(){
var d = this.value.split(/\D/);
return new Date(d[0], --d[1], d[2]);
},
set: function(d){
var day = ("0" + d.getDate()).slice(-2),
month = ("0" + (d.getMonth() + 1)).slice(-2),
datestr = d.getFullYear()+"-"+month+"-"+day;
@HenryVonfire
HenryVonfire / controllers.application.js
Last active September 14, 2018 14:29
Using different values for inputs
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
textTest: "test",
test: 12,
dateTest: new Date()
});
@HenryVonfire
HenryVonfire / controllers.application.js
Last active October 8, 2018 23:15 — forked from samselikoff/mirage.config.js
Example of Model.reopen that fails in ember > 3.2
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
showText() {
// this throws an error of exampleFun is not a function
// in ember > 3.2 when ec-mirage is enabled
this.model.exampleFun();
}
}
@HenryVonfire
HenryVonfire / adapters.application.js
Created September 10, 2018 07:23 — forked from runspired/adapters.application.js
Ember Data - Save Transaction
import Adapter from 'ember-data/adapters/json-api';
import Ember from 'ember';
import RSVP from 'rsvp';
const { Promise } = RSVP;
const { get } = Ember;
class Transaction {
constructor(store, ModelClass, primary, transactionMembers) {
this.store = store;
@HenryVonfire
HenryVonfire / components.list-data.js
Created September 5, 2018 07:45 — forked from mike-north/components.list-data.js
display + presentation
import Ember from 'ember';
import hbs from 'htmlbars-inline-precompile';
export default Ember.Component.extend({
layout: hbs`{{yield sortedItems}}`,
sortedItems: Ember.computed('data.@each.id', 'sort', function() {
const sort = this.get('sort');
const sorted = [...this.get('data')].sort((a, b) => {
if (sort === 'up') return a.id - b.id;
return b.id - a.id;
@HenryVonfire
HenryVonfire / components.my-component.js
Last active September 5, 2018 07:34 — forked from mike-north/components.my-component.js
component-data-provider
import Ember from 'ember';
// it makes the issue of async really simple, in that you just care about the array {{my-component}} yields out
// it may at some times be empty, it may have some stuff later -- you're just binding to it. No promises for you to worry about
// you could do the same thing with the API call currently in your controller, and then break out code that consumes that data into other components.
// to make this even fancier, you could add Ember.run.debounce to avoid race conditions
export default Ember.Component.extend({
term: '',
init() {
this._super(...arguments);
this.set('results', []);
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
actions: {
rollback() {
console.log(this.model.get('currentState.stateName'));
this.get('model').rollbackAttributes();
console.log(this.model.get('currentState.stateName'));
}
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});