2011-03-31 36 views
0

我使用dojo.data.ItemFileReadStore查詢包含數據的json文件。主要目的是在Js級找到翻譯。dojo ItemFileReadStore.getValue混合返回值不作爲字符串處理

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

你可以這樣說:

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; 

} 
+0

它的工作正確這樣。謝謝! – oromero 2011-03-31 20:10:00