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

时间:2011-03-31 19:17:00

标签: 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["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;
    }
});    
}

返回值始终是未定义的,是否有翻译。有任何想法吗? 我试过类型转换没有成功。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

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;

}