ExtJS 4-Model和DataStore.Raw中的字段,但不在DataStore.Data中

ExtJS 4-Model和DataStore.Raw中的字段,但不在DataStore.Data中,extjs,extjs4,Extjs,Extjs4,我试图用一个数据存储填充一个网格,该数据存储使用一个代理和一个定义的模型和读取器。类似的商店没有同样的问题,但有一个是 模型 Ext.define('DrillDescriptionGridModel', { extend: 'Ext.data.Model', fields: [ {name: 'sentTime', type: 'string'}, {name: 'sDescription', type: 'string'},

我试图用一个数据存储填充一个网格,该数据存储使用一个代理和一个定义的模型和读取器。类似的商店没有同样的问题,但有一个是

模型

Ext.define('DrillDescriptionGridModel', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'sentTime',        type: 'string'},
        {name: 'sDescription',    type: 'string'},
        {name: 'receivedTime',    type: 'string'},
        {name: 'seconds',        type: 'number'},
        {name: 'formatted',        type: 'string'},
        {name: 'alertPhone',    type: 'string'},
        {name: 'alertEmail',    type: 'string'}
    ]
});
读取器

var DrillDescriptionReader = Ext.create('Ext.data.JsonReader', {
    type:    'json',
    model:    'DrillDescriptionGridModel',
    root:    'data'
});
贮藏

代理返回一个json字符串

{"data":[{"sDescription":"Status Normal","sentTime":"12:00:00 am","receivedTime":"12:00:01 am","seconds":"2","formatted":"2 seconds","alertPhone":"","alertEmail":""}, [...]
将显示加载侦听器中的console.log

Ext.Class.c.m
  data: Object
    alertEmail: ""
    alertPhone: ""
    formatted: "2 seconds"
    receivedTime: "12:00:01 am"
    seconds: 2
    sentTime: "12:00:00 am"
    __proto__: Object
  [...]
  raw: Object
    alertEmail: ""
    alertPhone: ""
    formatted: "2 seconds"
    receivedTime: "12:00:01 am"
    sDescription: "Status Normal"
    seconds: 2
    sentTime: "12:00:00 am"
    __proto__: Object
[...]

有人知道为什么sDescription字段会映射到原始对象,而不是数据对象,或者在代码中发现错误吗?任何帮助都将不胜感激。谢谢。

如果您在标记extjs 4时使用它。。那么json读取器的定义就不正确了
这个类应该是
Ext.data.reader.Json

,所以我已经找到了这个类,不幸的是它与我发布的代码没有任何关系。谢谢你的帮助,洛基

我在代码中有另一个存储区,它试图利用同一个阅读器。。。这看起来根本不应该是个问题,但显然是个问题。在下面的商店中修改了阅读器,代码立即生效


再次感谢Rocky的帮助,感谢您查看nscrob。

感谢您的查看,但这不会改变任何事情。Ext.data.reader.Json有一个备用类名。它是Ext.data.JsonReader。这应该不是问题。我已经在Chromium Linux上用Ext4.0.2a测试了您的代码,并且可以在数据对象中看到sDescription。您使用的是哪个版本的ExtJS?我使用的是4.0.2(不是a),在Mac上的Chrome和FF6.0.2中进行了测试,在Windows环境中的IE8也得到了相同的结果。在Linux和Windows上的Chrome中,您的代码在4.0.2中也能正常工作。现在我不知道是什么导致了你的问题。
Ext.Class.c.m
  data: Object
    alertEmail: ""
    alertPhone: ""
    formatted: "2 seconds"
    receivedTime: "12:00:01 am"
    seconds: 2
    sentTime: "12:00:00 am"
    __proto__: Object
  [...]
  raw: Object
    alertEmail: ""
    alertPhone: ""
    formatted: "2 seconds"
    receivedTime: "12:00:01 am"
    sDescription: "Status Normal"
    seconds: 2
    sentTime: "12:00:00 am"
    __proto__: Object
[...]