2012-12-23 88 views
0

我有一段時間沒有問題,但我終於在這裏打了一堵牆。無論如何,爲了讓這個簡單。我正在嘗試在extjs 3.4中創建一個JSON存儲(與工作相關,並且我沒有更新)。 好吧,我創建了像往常一樣正確的響應並填寫它的查詢。我的問題是我有JSON上的一個額外的屬性,我想能夠拉和使用的應用程序。在鉻 樣品從響應對象我的JSON的:Extjs 3.4自定義JSONReader

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

現在,我知道這是正確的格式,因爲我使用的是網格被填充,但我不能得到的百分比屬性。所以我的問題是,如果在EXTjs上有一個不常用的額外參數,那麼如何在數據存儲構建代碼塊中添加額外的參數,在我的情況下,百分比是? 我試着在JSONReader上做一個metachange,但當我在創建數據存儲後檢查數據存儲時,我得到的結果是百分比:屬性的「百分比」。

+0

我知道我可以做另一個查詢,然後一個單獨的數據存儲,但我認爲這是一種浪費。我應該能夠添加一個參數到商店中,用在網格中,或者在使用數據庫中的動態數據的另一個元素中。 – Truesky

回答

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(); 

}); 

和數據/ test.json看起來是這樣的:

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

還有可能是你手動(不通過store.load())執行分機的替代方法.Ajax請求,使用您需要的屬性,然後使用您從Ajax請求獲得的數據手動調用Ext.data.JsonStore.loadData()

+0

我已經試過了。我可以看到來自JSON的數據並正確格式化,但仍然沒有「otherProperty」的可用性。我一直在討論JSON的元數據屬性,並且我有點讓它起作用,但這並不是答案,因爲我沒有在網格ATM上顯示任何內容。感謝指針,儘管5天前我已經有了相同的想法。 – Truesky