dojo ItemFileReadStore.getValue混合返回值未作为字符串处理

dojo ItemFileReadStore.getValue混合返回值未作为字符串处理,dojo,Dojo,我正在使用dojo.data.ItemFileReadStore查询包含数据的json文件。主要目的是在Js级别查找翻译 Json数据的“id”表示单词,而“t”表示翻译 function translate(word) { var json = '/my/language/path/es.json'; var reader = new dojo.data.ItemFileReadStore({ url: json }); var queryObj = {}; queryObj

我正在使用dojo.data.ItemFileReadStore查询包含数据的json文件。主要目的是在Js级别查找翻译

Json数据的“id”表示单词,而“t”表示翻译

function translate(word)
{
var json = '/my/language/path/es.json';    
var reader = new dojo.data.ItemFileReadStore({
    url: json
});
var queryObj = {};

queryObj["id"] = word;

reader.fetch({
    query: queryObj,        
    onComplete: function(items, request){
        if (items.length > 0) {
            var t = reader.getValue(items[0], 't');
            if (dojo.isString(t)) {                    
                return t;
            }
        }            
        return word;
    },
    onError: function(error, request){            
        return word;
    }
});    
}
无论是否存在转换,返回值始终是未定义的。有什么想法吗?
我试过打字,但没有成功。

你可以这样做:

function translate(wordId) {

  var translatedWord= wordId;

  var store = new dojo.data.ItemFileReadStore({ data: storeData });

  store.fetch({ query: { id: wordId },
                    onItem: function (item) {
                        translatedWord= (store.getValue(item, 't'));
                    }
                });

  return translatedWord;

}