PDA

View Full Version : getFields() of Model



aflx
7 Jan 2012, 6:20 AM
Hi,

I'm trying to extend Ext.data.proxy.Client.
I need to know the fields of the model I want to save. So in my proxy I tried something like this:



var fields = this.model.getFields();


But this doesn't work, fields is always null. I had a look at the sources and I noticed, that the getter on line 26005 in the sencha-touch-all-debug.js of the PR3 returns this.fields. During debugging I tried several things and this.prototype.fields worked.

Is this a bug or is it my mistake? What am I doing wrong?

My Model looks like this:



Ext.define('aflx.model.MyModel', {
extend: 'Ext.data.Model',

requires: [
"aflx.model.Status"
],

fields: [
{ name: 'id', type: 'int' },
{ name: 'uid', type: 'string' },
{ name: 'details', type: 'string' },
{ name: 'created', type: 'string' },
],

hasMany: {
model: "aflx.model.Status",
name: "status"
},

constructor: function(config) {
if (!config.hasOwnProperty("created")) {
config.created = new Date().toString("yyyy-MM-dd HH:mm:ss");
}

this.initConfig(config);
this.callParent([config]);

return this;
}
});


Ciao,
Alex

mitchellsimoens
7 Jan 2012, 6:33 AM
The Model should have the fields as a property, not just on the prototype. In the next release, the data package will be using the config object so the getters are going to be changed.

aflx
8 Jan 2012, 4:03 AM
Ah, ok. I will wait until this is final in Sencha Touch 2 ;)