如何从extjs商店获取JSON数组中的属性值?

时间:2013-04-25 10:39:30

标签: json extjs store

我一直在尝试从JSON存储中的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中获取与“Menu”相关联的值。如果我可以将每个值都放入一个数组中,那么我可以动态分配这些值以生成一个复选框组。

先谢谢。

1 个答案:

答案 0 :(得分: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
    });
});