私のコントローラーでは、「record.save」機能を使用しています。extjs 4.07 では、これは単一のレコードを json として送信します。4.1 では、レコードの配列を送信するようになったことに気付きました。サーバーコントローラーを更新して配列を処理できるので、これで問題ありません(単一のレコードのみを指定できればいいでしょう)
私の主な問題は、jsonでプロパティ「Id」を2回受け取ったことです。Id は私のレコード クラスのプロパティです。以下の Json を見ると、Json の末尾に「Id」が追加されていることがわかります。これの理由は何ですか?
[{
"Id":"f3e7def0-42e6-41c9-a2ba-a04400b7c568",
"QuotedPrice":"\u00a3500.00",
"Notes":"",
"JobQuantity":"0",
"DeliveryDate":"",
"ProjectId":"",
"id":""
}]
これが私のモデルです(読みやすくするためにjsonの一部を削除しました)
Ext.define('Mis.model.Job', {
extend: 'Ext.data.Model',
fields: [
{
mapping: 'Id',
name: 'Id'
}
,
{
mapping: 'Value',
name: 'QuotedPrice'
},
{
mapping: 'Name',
name: 'Name'
},
{
mapping: 'JobType',
name: 'JobType'
},
{
mapping: 'ClientPo',
name: 'ClientPO'
},
{
mapping: 'FilesOver',
name: 'FilesOver'
},
{
mapping: 'PreviousJobId',
name: 'PreviousJobId'
},
{
mapping: 'EstimateValue',
name: 'Estimate'
},
{
mapping: 'SalesContact',
name: 'SalesContact'
},
{
mapping: 'AccountHandler',
name: 'AccountHandler'
},
{
mapping: 'AssemblyTime',
name: 'AssemblyTime'
},
{
mapping: 'DespatchDate',
name: 'DespatchDate'
},
{
mapping: 'ProductionFiles',
name: 'ProductionFiles'
},
{
mapping: 'Notes',
name: 'Notes'
},
{
mapping: 'Quantity',
name: 'JobQuantity'
},
{
mapping: 'DeliveryDate',
name: 'DeliveryDate'
},
{
mapping: 'ProjectId',
name: 'ProjectId'
}
],
proxy: {
type: 'ajax',
url: 'https://www.xxx.localhost/',
api:
{
read: '/Jobs/Read/' + jId,
update: '/Jobs/Update',
create: '/Jobs/Update',
destroy: '/Jobs/Remove'
},
reader: {
type: 'json',
root: 'Jobs',
successProperty: 'success',
totalProperty: 'Total'
}
}
});