2013-04-25 3 views
0

Я пытаюсь динамически генерировать флажок из значения, которое находится в массиве JSON из магазина JSON.Как получить значение свойства в массиве JSON из хранилища extjs?

{"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

Адрес: Адрес: 0. Он вернет вам Ext.data.Record [] - массив записей. Если аргументы не переданы, все записи возвращаются. или использовать var store = grid.getStore(); store.each (функция (запись, idx) { // делаем все, что хотите, с записью console.log (record.get ('fieldName'); }); – Hariharan

ответ

2

Вы можете перебирать свой магазин:

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

Edit: Так как вы говорите, это не работает с динамическими данными, которые я думаю, что вы итерацию его, прежде чем он завершил загрузку. Чтобы быть уверенным, чтобы обрабатывать итерацию после загрузки вы можете сделать следующее:

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

+0

Он работает с динамическими данными. Обязательно перейдите в свой магазин после его загрузки. Я редактировал свой пост. –