我有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
任何帮助表示赞赏,
答案 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')); });
解决了这个问题。