I have a model that looks like this.

Ext.define('Avenger.model.Setting', {

extend: 'Ext.data.Model',

requires: [

'Ext.data.proxy.Rest'

],

fields: [

'key',

'value',

'description'

],

idProperty: 'key',

proxy: {

type: 'rest',

url: Avenger.util.getRestUrl('/settings'),

headers: {

'accept': 'application/json'

},

reader: {

type: 'json'

},

writer: {

writeAllFields: true

}

}

});


I create a store. I modify the store for a 'key1' and set 'key1''s value property to 0

when I look at the record before calling sync the data property of the record looks like

{key: "key1", value: 0, description: null}

after calling sync the record.data property looks like this

{key: "Password_Policy", value: 0, description: null, request: Object, requestId: 16…}


Extjs appears to have added a request property?

Now if I modify 'key1' to have a value of 1 and call store.sync

The JSON.encode Range Error occurs. I believe because of the request object that was added to my data.


I tried to recreate in fiddle but since I have no way to have a rest service it proved impossible.