Skip to content

Instantly share code, notes, and snippets.

@teddyzeenny
teddyzeenny / gist:5613485
Last active December 17, 2015 12:59
Deleting a parent when you have `dependent: :destroy` on the server
// Deleting a parent when you have `dependent: :destroy` on the server
// given `parent` a parent record
// `children` the parent's children
var childrenTransaction, parentTransaction;
childrenTransaction = this.get('store').transaction();
childrenTransaction.add(parent);
parent.deleteRecord();
parentTransaction.add(parent);
@teddyzeenny
teddyzeenny / gist:5626864
Last active December 17, 2015 14:49
Backburner example: sync and render
var person, backburner = new Backburner(['sync', 'render']);
person = {
firstName: null,
lastName: null,
fullName: null,
twitter: null
};
function set(prop, val) {
@teddyzeenny
teddyzeenny / gist:6029603
Created July 18, 2013 14:07
Ember.run.once
JP.DashboardIndexView = Ember.View.extend({
didInsertElement: function() {
this.usersChanged();
},
usersChanged: function() {
if (!this.$()) { return; } // View not in DOM
Ember.run.once(this, 'logUsers');
}.observes('controller.users.@each'),
@teddyzeenny
teddyzeenny / gist:6124232
Last active December 20, 2015 11:29
Override resolver to account for other namespaces
News = Em.Namespace.create();
News.ArticleController = Ember.Controller.extend();
var get = Ember.get;
var Resolver = Ember.DefaultResolver.extend({
parseName:function (fullName) {
var nameParts = fullName.split(":"),
@teddyzeenny
teddyzeenny / gist:6139118
Last active December 20, 2015 13:29
_debugInfo format
propertyInfo: {
// include other mixins/properties not listed here
includeOtherProperties: true,
// do not display these properties
skipProperties: ['toString', 'send', 'withTransaction'],
// do not display these mixins along with their properties
skipMixins: [ 'Ember.Evented'],
// don't calculate these CPs automatically (unless cached)
expensiveProperties: ['maritalStatus', 'avatar'],
@teddyzeenny
teddyzeenny / gist:6176786
Last active December 20, 2015 18:38
Data Adapter API - option 1
// Advantage: the adapter can be used by multiple tools at the same time and every `getModelTypes` request is isolated.
getModelTypes: function(target, typesReceived, typeAdded, typeUpdated, typeRemoved) {
// code to fetch types ...
// ...
// call typesReceived and pass fetched types
typesReceived.call(target, types);
// .. setup array observers to call typeAdded, typeUpdated, and typeRemoved on changes
@teddyzeenny
teddyzeenny / gist:6176897
Created August 7, 2013 18:20
Data Adapter API - option 2
// Disadvantage: releasing model types will clear all observers
// irrespective of how many times getModelTypes was requested
// or who made the request
getModelTypes: function(target, typesReceived, typeAdded, typeUpdated, typeRemoved) {
// code to fetch types ...
// ...
// call typesReceived and pass fetched types
typesReceived.call(target, types);
@teddyzeenny
teddyzeenny / gist:6177557
Last active December 20, 2015 18:39
Data adapter: option 3
getModelTypes: function(typeAdded, typeUpdated, typeRemoved) {
// code to fetch types ...
// ...
// .. setup array observers to call typeAdded, typeUpdated, and typeRemoved on changes
var releaseMethod = function() {
//.. code to clear all observers
};
@teddyzeenny
teddyzeenny / gist:6193759
Last active December 20, 2015 20:58
DebugAdapter
var get = Ember.get, capitalize = Ember.String.capitalize, underscore = Ember.String.underscore, DS = window.DS ;
var DataAdapter = Ember.Object.extend({
init: function() {
this._super();
this.releaseMethods = Ember.A();
},
/**
The application being debugged.
@teddyzeenny
teddyzeenny / gist:6242646
Created August 15, 2013 17:15
Lazy chains errors
Uncaught TypeError: Cannot call method 'didChange' of undefined ember.js?body=1:2373
chainsDidChange ember.js?body=1:2373
Ember.propertyDidChange ember.js?body=1:2307
Ember.EachProxy.Ember.Object.extend.contentKeyDidChange ember.js?body=1:13319
sendEvent ember.js?body=1:2106
notifyObservers ember.js?body=1:2441
Ember.propertyDidChange ember.js?body=1:2308
iterDeps ember.js?body=1:2345
dependentKeysDidChange ember.js?body=1:2329
Ember.propertyDidChange ember.js?body=1:2306