1

我有一个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

任何帮助表示赞赏,

4

2 回答 2

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;
    }
}
于 2013-01-30T07:34:23.830 回答
0

正如我在第一篇文章中评论的那样(重新发布以结束这个问题):

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

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

解决了这个问题。

于 2013-01-30T08:22:41.033 回答