0
使用sencha touch 2,我試圖使用json proxy呈現嵌套列表。 JSON的樣子Sencha Touch JSONPReader
[
{
"start": "0"
},
{
"format": "json"
},
.......
{
"GetFolderListing": [
{
"folder": {
"total": 0,
"id": "Calendar",
"name": "Calendar",
"unread": 0,
}
},
{
"folder": {
"total": 0,
"id": "Contacts",
"name": "Contacts",
"unread": 0,
}
},
.......
我想用GetFolderListing.folder.name作爲displayField 我的店看起來像
Ext.define('foo.store.FolderListing', {
extend: 'Ext.data.TreeStore',
require: ['foo.model.FolderListing'],
config: {
model: 'foo.model.FolderListing',
recursive: true,
proxy: {
type: 'jsonp',
url: 'http://localhost/?xx=yy&format=json',
callbackKey: "jsoncallback",
reader: {
type: 'json',
rootProperty: 'GetFolderListing',
record: 'folder'
}
}
}
});
現在我得到的是一個錯誤 遺漏的類型錯誤:無法讀取property'id'undefined
任何人都可以提供關於如何解決這個問題或更好地調試的見解,或者如何進行自定義分析並將項目傳回商店?
由於
======== 更新 - 爲了使rootProperty在讀取器工作,JSON必須是一個JSONObject而非JSON陣列例如
{
"GetFolderListing": [
{
"folder": {
"total": 0,
"id": "Contacts",
"name": "Contacts",
"unread": 0,
"leaf": "true"
}
},
{
"folder": {
"total": 0,
"id": "Conversation Action Settings",
"name": "Conversation Action Settings",
"unread": 0,
"leaf": "true"
}
},
.......
是的,你是對的,JSON需要爲第一組兄弟姐妹映射尋址以使rootProperty工作。謝謝 ! – pjaol 2012-02-16 03:15:15