0

久しぶりの質問でしたが、ここでついに壁にぶち当たりました。とにかく、これを簡単にするために。extjs 3.4 で JSON ストアを作成しようとしています (仕事関連で、更新していません)。さて、私はいつものように適切な応答でクエリを作成し、それを埋めました。私の問題は、アプリでプルして使用できるようにしたい JSON に追加のプロパティが 1 つあることです。クロムの応答オブジェクトからの私の JSON のサンプル:

myInventory: [{Priority:1, PMNumber:444, Description:fix-a-tape, Assets:3, Storage_Count:0,…},…]
percent: 97.040498442368
totalCount: "3"

これで、使用しているグリッドにデータが入力されるため、これが正しくフォーマットされていることがわかりますが、パーセント プロパティを取得できません。私の質問は、EXTjs では一般的ではない追加パラメーター (私の場合はパーセント) が 1 つある場合、コードのデータストア ビルディング ブロックで追加パラメーターをどのように引き出すのですか? JSONReader でメタチェンジを実行しようとしましたが、データストアの作成後にデータストアを検査すると、プロパティで percent:"percent" しか得られません。

4

1 に答える 1

0

Ext.data.JsonReaderには、まさに必要なプロパティjsonDataがあります。簡単な例:

Ext.onReady(function() {
    var store = new Ext.data.JsonStore({
        url: 'data/test.json',
        root: 'dataRoot',
        fields: ['fieldA', 'fieldB'],
        idProperty: 'id',
        storeId: 'myStore'
    });

    store.on('load', function(store) {
        console.log(store.reader.jsonData.someOtherProperty);
    });

    store.load(); 

});

data/test.jsonは次のようになります。

{
    dataRoot: [{
        id: 0,
        fieldA: 'a',
        fieldB: 'b' 
    }],
    someOtherProperty: 'abc'
}

(store.load()を介さずに)手動でExt.Ajaxリクエストを実行し、必要なプロパティを使用してから、Ajaxから取得したデータを使用して手動でExt.data.JsonStore.loadData()を呼び出す別のアプローチもあります。リクエスト。

于 2012-12-31T10:49:49.680 に答える