2013-04-25 74 views
2

目前我使用的follwing方式来填补我的js全局变量与由JSON获得的数据正确方法:填补通过Ajax请求的js变量

var tranlationJson = 
    $.ajax({ 
    type: "GET", 
    url: "translation.xml", 
    contentType: "text/xml", 
    dataType: "xml", 
    success: function (dataSource) {    
      tranlationJson=ToJasonParser(dataSource); 
    } 
}); 

有没有更聪明的方法?我需要填充这些变量,因为在稍后加载的脚本中,我使用它们的内容。

+1

那不行;它是异步的。使用承诺。 – SLaks 2013-04-25 14:36:23

回答

1

您可以tranlationJson的对象,而不是变量是这样的:

var tranlationJson = { 
    init: function(){ 
       $.ajax({ 
        type: "GET", 
        url: "translation.xml", 
        contentType: "text/xml", 
        dataType: "xml", 
        success: function (dataSource) {    
         this.data = ToJasonParser(dataSource); 
        } 
       }); 
} 

然后调用init功能是这样的:

tranlationJson.init(); 

那么你就可以访问Json response data这样的:

tranlationJson.data.something; 

Demo

+0

错误;它是异步的。 – SLaks 2013-04-25 15:20:23

+0

那么什么是正确的方式呢?我不知道我们中的很多人都知道如何使用承诺,如果您添加解释它的答案,我会很感激。 – razzak 2013-04-25 15:33:26

+0

@SLaks - 您可以使用承诺发布代码吗? – 2013-04-26 06:28:07