2011-09-14 47 views
0

我正在嘗試使用代理和定義的模型和閱讀器填充數據存儲的網格。類似的商店沒有相同的問題,但其中一個是。ExtJS 4 - 模型和DataStore.Raw中的字段但不包含在DataStore.Data中

型號

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' 
}); 

商店

DrillDescriptionStore = Ext.create('Ext.data.Store', { 
    model: 'DrillDescriptionGridModel', 
    autoLoad: false, 
    proxy: { 
     type:    'ajax', 
     url:   '/inc/ajax/Monitors.php', 
     actionMethods: 'POST', 
     reader:   DrillDescriptionReader 
    }, 
    listeners: { 
     load: function() { 
      console.log(this.getAt(0)); 
      DrillDescriptionPanel.show(); 
     } 
    } 
}); 

代理返回一個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場將在原始對象被映射,而不是數據對象,或者在代碼發現錯誤?任何幫助將不勝感激。謝謝。

+0

我已經在Linux上的Chromium中使用Ext 4.0.2a測試了您的代碼,並且也可以在數據對象中看到sDescription。你正在使用哪個版本的ExtJS? – rocky3000

+0

我使用的是4.0.2(不是a),在Mac上使用Chrome和FF6.0.2進行測試,而在Windows環境中使用IE8進行測試,結果相同。 – SerEnder

+0

您的代碼也可以像4.0.2一樣適用於我 - Linux和Windows上的Chromium。現在我不知道什麼會導致你的問題。 – rocky3000

回答

0

如果你正在使用的ExtJS 4,你標記吧..然後JSON讀者無法正常 定義的類應該是Ext.data.reader.Json

+0

謝謝你看看,但是,這並沒有改變任何東西。 – SerEnder

+1

Ext.data.reader.Json有一個替代類名。它是Ext.data.JsonReader。這不應該是問題。 – rocky3000

+0

是的,你是對的,我的錯誤.. – nscrob

0

所以我想通了這一個出來,遺憾的是它沒有任何關係與我發佈的代碼。感謝所有幫助Rocky。

我在另外一家商店中試圖利用同一個閱讀器的代碼稍微有些...看起來應該不是什麼問題,但顯然是這樣。在下面的商店中修改了閱讀器,代碼立即工作。

再次感謝Rocky的幫助,感謝您看看nscrob。

相關問題