Ext JS 4.1.3:如何从JSON存储中获取值

时间:2013-01-29 13:09:25

标签: javascript json extjs extjs4

我有Ext.data.Store填充了语言变量。背后的JSON看起来像这样:

{
    "language":"en_GB",
    "data":[
        {"fieldName":"browserInfo","fieldValue":"Descriptive text"}
    ]
}

我创建的商店:

 Ext.local.langStore = Ext.create('Ext.data.Store', {
     autoLoad: true,
     fields: [
         {name: 'fieldName', type: 'string'},
         {name: 'fieldValue', type: 'string'},
     ],
     proxy: {
         type: 'ajax',
         url: 'en_GB.json',
         reader: {
             type: 'json',
             root: 'data'
         }
     }
 });

我正在尝试从给定的fieldValue获取fieldName。我如何在Ext中执行此操作?我尝试过使用:

var getLabel = function(field_id) {
    var store = Ext.local.langStore;
    var index = store.findExact('fieldName',field_id);
    if(index >= 0) {
        return store.getAt(index).get('fieldValue'); 
    } else {
        return field_id;
    }
}

但是没有太多运气。 index始终为-1

任何帮助表示赞赏,

2 个答案:

答案 0 :(得分:0)

试试这个,

var getLabel = function(field_id) {
    var store = Ext.local.langStore;
    var record = store.findRecord('fieldName', field_id);
    if(record) {
        return record.get('fieldValue'); 
    } else {
        return field_id;
    }
}

答案 1 :(得分:0)

正如我对第一篇文章发表评论(重新发布以关闭此问题):

  

解决了它。它本身的功能没有问题,它是   在商店本身之前调用的测试程序   加载。添加

 Ext.onReady(function() { 
      console.log(getLabel('browserInfo')); 
 });  
     

解决了这个问题。