2011-09-14 13 views
0

プロキシと定義済みのモデルとリーダーを使用するデータストアをグリッドに設定しようとしています。類似の店舗には同じ問題はありませんが、同じものがあります。ExtJS 4 - Modelと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はsDescriptionフィールドは、生のオブジェクトにマッピングされる理由

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 
[...] 

誰もが知っている表示ではなく、データオブジェクトは、またはコードに誤りを発見しますか?どんな助けでも大歓迎です。ありがとう。

+0

私はLinux上のChromiumでExt 4.0.2aでコードをテストしましたが、データオブジェクトにsDescriptionも表示されています。どのバージョンのExtJSを使用していますか? – rocky3000

+0

私は4.0.2(aではない)、Chromeでテストし、MacではFF6.0.2、Windows環境ではIE8を使用しています。 – SerEnder

+0

あなたのコードはLinuxとWindowsのChromiumでも4.0.2で期待通りに動作します。今私はあなたの問題を引き起こす可能性があるのか​​分かりません。 – rocky3000

答えて

0

あなたはそれをタグ付けされたとして、あなたはその後、JSONリーダーが正しく 定義されていません。.. ExtJSに4を使用している場合、クラスはExt.data.reader.Json

+0

見ていただきありがとうございますが、ええ、それは何も変化しません。 – SerEnder

+1

Ext.data.reader.Jsonには代替クラス名があります。 Ext.data.JsonReaderです。これは問題ではありません。 – rocky3000

+0

うん、あなたは正しい、私の間違い.. – nscrob

0

は、だから私はこの1つを考え出したであるべきであり、残念ながらそれは何の関係もありませんでした私が投稿したコードと一緒に。すべてのおかげでロッキー。

私は同じリーダーを利用しようとしていたコードにもう少し下の別の店を持っていました...それはまったく問題ではないはずですが、明らかにそうだったようです。下のストアで読者を修正し、すぐにコードを処理しました。

もう一度おかげさまでRockyさんに感謝し、nscrobを見てくれてありがとうございます。

関連する問題