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 に答える