无法访问$ .ajax方法

时间:2017-09-07 12:35:06

标签: javascript ajax

我试图在jsonGet方法中调用成功回调函数,并尝试在JsonGet方法之外访问变量“size”和“noOfFiles”,但它在jsonGet方法之外显示未定义。

我正在使用以下代码

(function()
{
/**
 * Alfresco Slingshot aliases
 */
var $html = Alfresco.util.encodeHTML,
 $isValueSet = Alfresco.util.isValueSet;

var $html5 = Alfresco.util.encodeHTML,
$isValueSet = Alfresco.util.isValueSet;


if (Alfresco.DocumentList)
{  YAHOO.Bubbling.fire("registerRenderer",
            {
                propertyName: "FolderInfo",

               renderer: function type_renderer(record)
               {
                    var jsNode = record.jsNode;  
                    var nodeRef = jsNode.nodeRef;
                    var size, noOfFiles;

                    console.log(size);
                    console.log(Alfresco.constants.PROXY_URI + "com/acme/nodesize/node-size.json?nodeRef=" + nodeRef);

                    /*Alfresco.util.Ajax.jsonGet({*/
                        $.ajax({
                        url: encodeURI(Alfresco.constants.PROXY_URI + 'com/acme/nodesize/node-size.json?nodeRef='+nodeRef),
                        async: false,
                        successCallback:
                        {
                           fn: function loadWebscript_successCallback(response, config)
                           {
                               var obj = JSON.parse(response.serverResponse.responseText);
                               if (obj)
                               {
                                 console.log("AJAX calls works. Printing the folder size " + obj.size + " & no of files " + obj.noOfFiles);
                                   size = obj.size;
                                   noOfFiles = obj.noOfFiles;
                                   alert(size);
                                   console.log("inside success call back function");
                               }
                           },
                           /*scope: this*/
                        },
                        /*scope: this*/
                     });

                        console.log("Size"+size);
                        html5 = '<span class="item">' + "Folder Size: " + '<b>' + size + '</b>' + '</span>';
                        return html5;


               }
          });
}



})();

但是在网上搜索之后,我了解到jsonGet是异步的,所以在同步代码之后它是优秀的。所以,我用$ .ajax方法替换了jsonGet方法,并将async设置为false以使$ .ajax同步并且访问jsonGet方法之外的变量。但是,变量“size”仍未定义。

任何帮助都会非常感激。我很多天都在努力

0 个答案:

没有答案