解决了Extjs和Rails2.1结合的问题

本文详细介绍了如何解决Extjs与Rails2.1结合时因to_json变化导致的数据解析问题,通过调整JsonReader配置,使Extjs正确识别Rails2.1的JSON结构。

熟能生巧这句话一点都不假,昨天研究的Extjs与Rails2.1结合,由于to_json在Rails2.1中发生了变化,导致列表的内容出不来的问题,今天对研究Extjs进一步研究之后,有了一点眉目,刚吃完晚饭就开始坐回了电脑前改写代码验证自己的想法,经过几次的尝试,终于圆满解决了这个问题。

        解决的办法还得从to_json的变化说起,先来对比一下结果:

rails2.02版本的to_json结果:

{"results": 1, "posts": [{"updated_at": "2008/06/09 11:53:16 +0200",
"title": "test", "published": true, "id": 1, "content": "contenu",
"created_at": "2008/06/09 11:53:16 +0200"}]}


而rails2.1版本的to_json结果:

{"posts": [{"post": {"updated_at": "2008-06-09T07:56:46Z", "title":
"test", "published": true, "id": 1, "content": "contenu", "created_at":
"2008-06-09T07:56:46Z"}}], "results": 1}

每个post之前都增加了一个“post”,我猜想to_json可能是从xml中学来的,这样一来,信息的层次感比以前强多了。

那么,要解决这个问题,就需要告诉JsonReader新的Json文档结构,需要修改的代码如下:

new Ext.data.JsonReader({
                            root: 'posts',
                            id: 'id',
                            totalProperty: 'results'
                        }

改为:

new Ext.data.JsonReader({
                            root: 'posts',
                            id: 'postid',
                            totalProperty: 'results'
                        }

这样,Extjs就能正确识别信息了。不过这个方法只能是使用Ext.data.Store自己创建JsonReader的情况,如果使用Ext.data.JsonStore,那就需要等Extjs插件修改默认的JsonReader的代码了。

转载于:https://www.cnblogs.com/hannover/archive/2009/03/28/1424130.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值