2013-04-25 160 views
0

我一直在嘗試從JSON存儲中的JSON數組中的值動態生成複選框。如何從extjs存儲獲取JSON數組中的屬性值?

{"MODULECATOGERY":[{"Menu":"MSU"},{"Menu":"SCHEDULE"},{"Menu":"MARKET_DASHBOARD"},{"Menu":"FE_REFERENCE"},{"Menu":"QC_TOOLS"},{"Menu":"QUICKQC_VOICE"},{"Menu":"QUICKQC_DATA"},{"Menu":"MARKETQC_VOICE"},{"Menu":"MARKETQC_DATA"},{"Menu":"SURGERY"},{"Menu":"FILE_INVENTORY"},{"Menu":"MARKET_TRACKER"},{"Menu":"DRIVE_ROUTE_TRACKER"},{"Menu":"TICKETS"},{"Menu":"TICKET_TRACKER"},{"Menu":"ASSETS"},{"Menu":"METRICS"},{"Menu":"DAILY_STATUS"},{"Menu":"DAILY_PROCESSING"},{"Menu":"WEEKLY_WORKFLOW"},{"Menu":"CUSTOMER_QUESTIONS"},{"Menu":"KPI_PERFORMANCE_METRICS"},{"Menu":"COLLECTION_METRICS"},{"Menu":"OPERATIONS_DASHBOARD"},{"Menu":"PRODUCTION_DASHBOARD"},{"Menu":"SUPPORT_DASHBOARD"},{"Menu":"REVENUE_TRACKER"},{"Menu":"DEPLOYMENT_TRACKER"},{"Menu":"TICKETS"},{"Menu":"TICKET_TRACKER"},{"Menu":"ASSET_MANAGEMENT"},{"Menu":"GENERATE_SHIPMENT"},{"Menu":"SHIPMENT_TRACKER"},{"Menu":"RESOURCES"},{"Menu":"SCHEDULE"},{"Menu":"TRACKER"}]} 

如何在上面的JSON中獲得與「菜單」相關的值。如果我可以將每個值都放入一個數組中,那麼我可以動態地分配這些值來生成一個複選框組。

在此先感謝。

+1

嗨 Store.getRange()似乎正是你正在尋找。它會返回你Ext.data.Record [] - 記錄數組。如果沒有參數傳遞,則返回所有記錄。 或使用 var store = grid.getStore(); (record.get('fieldName'); }); – Hariharan 2013-04-25 11:14:01

回答

2

可以遍歷您的商店:

store.each(function(record) { 
    var menu = record.get('Menu'); 
}); 

編輯: 既然你說這不符合動態數據的工作,我想你迭代它,它已經完成加載之前。爲了確保處理迭代後負荷,你可以做到以下幾點:

store.on({ 
    //Listener that fires everytime after your store has loaded 
    load: function() { 
     store.each(function(record) { 
      var menu = record.get('Menu'); 
      //do stuff 
     }); 
    } 
}); 
store.load(); 

如果你只想在第一時間執行代碼的存儲加載您可以使用回調函數的load()方法:

store.load(function() { 
    store.each(function(record) { 
     var menu = record.get('Menu'); 
     //do stuff 
    }); 
}); 
+0

上面的解決方案僅適用於靜態數據,但可以使用任何你想要的記錄。不是動態數據請幫助... – user2274441 2013-05-01 09:35:25

+0

它可以處理動態數據,請務必在您的商店加載完成後迭代。 – 2013-05-02 06:38:04

相關問題