我正在嘗試使用代理和定義的模型和閱讀器填充數據存儲的網格。類似的商店沒有相同的問題,但其中一個是。ExtJS 4 - 模型和DataStore.Raw中的字段但不包含在DataStore.Data中
型號
Ext.define('DrillDescriptionGridModel', {
extend: 'Ext.data.Model',
fields: [
{name: 'sentTime', type: 'string'},
{name: 'sDescription', type: 'string'},
{name: 'receivedTime', type: 'string'},
{name: 'seconds', type: 'number'},
{name: 'formatted', type: 'string'},
{name: 'alertPhone', type: 'string'},
{name: 'alertEmail', type: 'string'}
]
});
讀者
var DrillDescriptionReader = Ext.create('Ext.data.JsonReader', {
type: 'json',
model: 'DrillDescriptionGridModel',
root: 'data'
});
商店
DrillDescriptionStore = Ext.create('Ext.data.Store', {
model: 'DrillDescriptionGridModel',
autoLoad: false,
proxy: {
type: 'ajax',
url: '/inc/ajax/Monitors.php',
actionMethods: 'POST',
reader: DrillDescriptionReader
},
listeners: {
load: function() {
console.log(this.getAt(0));
DrillDescriptionPanel.show();
}
}
});
代理返回一個JSON字符串
{"data":[{"sDescription":"Status Normal","sentTime":"12:00:00 am","receivedTime":"12:00:01 am","seconds":"2","formatted":"2 seconds","alertPhone":"","alertEmail":""}, [...]
在負載偵聽器的console.log顯示
Ext.Class.c.m
data: Object
alertEmail: ""
alertPhone: ""
formatted: "2 seconds"
receivedTime: "12:00:01 am"
seconds: 2
sentTime: "12:00:00 am"
__proto__: Object
[...]
raw: Object
alertEmail: ""
alertPhone: ""
formatted: "2 seconds"
receivedTime: "12:00:01 am"
sDescription: "Status Normal"
seconds: 2
sentTime: "12:00:00 am"
__proto__: Object
[...]
任何人都知道爲什麼sDescription場將在原始對象被映射,而不是數據對象,或者在代碼發現錯誤?任何幫助將不勝感激。謝謝。
我已經在Linux上的Chromium中使用Ext 4.0.2a測試了您的代碼,並且也可以在數據對象中看到sDescription。你正在使用哪個版本的ExtJS? – rocky3000
我使用的是4.0.2(不是a),在Mac上使用Chrome和FF6.0.2進行測試,而在Windows環境中使用IE8進行測試,結果相同。 – SerEnder
您的代碼也可以像4.0.2一樣適用於我 - Linux和Windows上的Chromium。現在我不知道什麼會導致你的問題。 – rocky3000