我正在研究基本的Sencha Touch應用程序,該應用程序顯示文本消息列表以及發送消息的關聯用戶的名稱。我在線學習了關於如何設置模型關聯的教程,但每個教程都假設服務器使用嵌套結構生成數據。在沒有嵌套的情況下在Sencha Touch中加載關聯的數據
我正在使用的數據具有主鍵/外鍵關係的扁平結構,我無法弄清楚如何讓Sencha從單個響應中加載兩個存儲。
模型/ user.js的
Ext.define('App.model.User', {
extend: 'Ext.data.Model',
config: {
fields: [
{ name: 'uid', type: 'number' },
{ name: 'name', type: 'string' },
]
}
});
存儲/ Users.js
Ext.define('App.store.Users', {
extend: 'Ext.data.Store',
config: {
model: 'App.model.User',
autoLoad: true,
}
});
模型/ Message.js
Ext.define('App.model.Message', {
extend: 'Ext.data.Model',
config: {
fields: [
{ name: 'id', type: 'number' },
{ name: 'uid', type: 'number' },
{ name: 'message', type: 'string' }
],
associations: [{
type: 'belongsTo',
model: 'App.model.User',
primaryKey: 'uid',
foreignKey: 'uid'
}],
proxy: {
type: 'jsonp',
url: 'messages.json',
reader: {
type: 'json',
rootProperty: 'req_messages'
}
}
}
});
存儲/ Messages.js
Ext.define('App.store.Messages', {
extend: 'Ext.data.Store',
config: {
model: 'App.model.Message',
autoLoad: true,
}
});
消息被我的應用程序(下面的示例JSON響應)正確加載和顯示,但我無法弄清楚如何讓相關用戶加載到商店中。這可以通過配置解決,還是需要一個自定義閱讀器?任何幫助感謝!
樣品JSON
{
"users": [{
"uid": "1",
"name": "John"
}, {
"uid": "3033",
"name": "Noah"
}],
"req_messages": [{
"id": "539",
"uid": "1",
"message": "my message"
}, {
"id": "538",
"uid": "1",
"message": "whoops"
}, {
"id": "534",
"uid": "3033",
"message": "I love pandas."
}]
}
它的工作機會? – 2012-07-21 12:40:27