这是一个两部分的问题。第一个是关于 Sencha 如何解析 JSON 和读取存储的技术问题。
我有两个模型,订单和用户:
Ext.regModel('Order', {
fields: [
{name: 'id', type: 'int'},
{name: 'user_id', type: 'int'},
{name: 'name', type: 'string'},
{name: 'price', type: 'float'},
],
belongsTo: 'User'
});
Ext.regModel('User',{
fields: [
{name: 'id', type: 'int'},
{name: 'first_name', type: 'string'},
{name: 'last_name', type: 'string'},
{name: 'email', type: 'string'},
],
associations:[
{type: 'hasMany', model: 'Order', name: 'orders'}
]
});
总的来说,一个非常简单的关联。我有以下从服务器检索的 JSON:
[
{
"id":22,
"price":0.0,
"name":"My First Order",
"user_id":3,
"user": {
"id": 3,
"first_name": "Michael",
"last_name": "Jones",
"email": "michaeljones@email.com"
}
}
]
最后,这是我的商店:
var o = new Ext.data.Store({
model: "Order",
sorters: "name",
getGroupString: function(record){
return record.get('name')[0]
},
proxy: {
type: 'ajax',
url: '/orders',
headers: {'Accept': 'application/json'},
reader: {
type: 'json'
}
},
autoLoad: true
});
Ext.regStore("Orders",o);
当我阅读订单数据时,我找不到任何关于用户的提及。所以,然后我在 Sencha 文档中找到了这个方便的指南:http ://dev.sencha.com/deploy/touch/docs/?class=Ext.data.Reader
但是,文档仅显示了 hasMany 关联的示例 - 它不包括从 belongsTo 关联中提取数据。我试着在网上搜索了几个小时,结果空手而归。从订单字段中检索用户字段的正确方法是什么?
更新:我删除了存储中的代理和自动加载参数,并将其替换为数据参数,该参数包含与我的示例中的服务器返回的完全相同的 JSON 字符串。你猜怎么着?有效。但是,我仍然需要解决这个问题,以便它在与我的服务器通信时能够正常工作!有任何想法吗?
第二部分:你对煎茶触摸有什么看法?该框架似乎非常强大,但文档和示例似乎相当薄弱。我还担心解析这些数据变得多么困难。那里有更好的选择吗?