如何从 extjs 存储中获取 JSON 数组中的属性值?
Posted
技术标签:
【中文标题】如何从 extjs 存储中获取 JSON 数组中的属性值?【英文标题】:How to get a value of a property in JSON array from extjs store? 【发布时间】:2013-04-25 10:39:29 【问题描述】:我一直在尝试从 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 中获取与“菜单”关联的值?如果我可以将每个值都放入一个数组中,那么我可以动态分配这些值以生成一个复选框组。
提前致谢。
【问题讨论】:
Hi Store.getRange() 似乎正是您要搜索的内容。它将返回 Ext.data.Record[] - 记录数组。如果未传递任何参数,则返回所有记录。或使用 var store = grid.getStore(); store.each(function(record,idx) //对记录做任何你想做的事情 console.log(record.get('fieldName'); ); 【参考方案1】:您可以迭代您的商店:
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
);
);
【讨论】:
上述解决方案仅适用于静态数据,不适用于动态数据。请帮忙... 它确实适用于动态数据。确保在加载后迭代您的商店。我编辑了我的帖子。以上是关于如何从 extjs 存储中获取 JSON 数组中的属性值?的主要内容,如果未能解决你的问题,请参考以下文章