Ext.define('amdaModel.DefaultValues', { singleton: true, type:null, userValues:'', constructor: function() { this.getDefaultValues(); }, getDefaultValues: function(){ var me = this; Ext.Ajax.request({ url: 'generic_data/defaultValues.json', method: 'GET', success: function(response) { me.values = Ext.decode(response.responseText); // after reading generic default values, we read user defaults. Ext.Ajax.request({ url: 'data/'+ sessionID +'/userDefaults.json', method: 'GET', success: function(response) { me.userValues = Ext.decode(response.responseText); Ext.Object.each(me.userValues, function(key,value){ var keys = key.split('_'); var obj = me.values; for (var i = 0; i < keys.length - 1; i++) { obj = obj[keys[i]]; } obj[keys[keys.length - 1]] = value; }) }, failure:function(){ // Maybe create the file ? } }); }, failure: function(response) { console.error('Failed to load default values', response); } }); }, });