我有一個json商店加載,我需要從它抓取一條記錄。 我用過:getAt(index)
,find()
,getById()
,但沒有結果。 這是我的代碼:從json商店獲取記錄extjs
var appSettingReader = new Ext.data.JsonReader({
root: 'results',
},[
{name: 'id', type: 'int', mapping: 'id'},
{name: 'projetId', type: 'int', mapping: 'projetId'},
{name: 'resLevels', type: 'int', mapping: 'resLevels'},
{name: 'maxResToLock', type: 'int', mapping: 'maxResToLock'},
{name: 'maxTimeToLock', type: 'int', mapping: 'maxTimeToLock'},
{name: 'infosToPrint', type: 'string', mapping: 'infosToPrint'}
])
var appSettingStore = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: 'inc/getSettings.php',
method: 'POST'
}),
baseParams:{task: "app"},
reader : appSettingReader,
sortInfo:{field: 'id', direction: "DESC"}
})
appSettingStore.load();
此代碼返回undefined:
console.log(appSettingStore.getAt(0));
console.log(appSettingStore.find("id","1"));
這是JSON字符串從服務器返回:
{success:true,"results":[{"id":"1","projetId":"1","resLevels":"1","maxResToLock":"40","maxTimeToLock":"10","infosToPrint":"1_2_3_5","hotlineMail":"[email protected]"}]}
我還測試了這款代碼:
var records = new Array()
var test = appSettingStore.each(function(rec){
records.push(rec)
})
console.log(records)
,我得到一個空陣列!
PS:本店未綁定任何組件; 我只想讀取和寫入它。
我注意到你會遇到一個問題。在你的JsonReader的字段對象中聲明一個名爲「idProjet」的字段,但是你的服務器返回「projetId」。確保這些匹配以獲得期望的結果。 – McStretch 2010-10-31 01:33:26
這是一個錯誤,問題沒有解決,我得到了商店罰款我已經測試了一個網格它的工作!我仍然無法使用find()或任何過濾器函數 – cranberies 2010-10-31 02:42:37
出於好奇,問題是什麼? – timdev 2010-10-31 02:47:27