0

我正在处理别人的代码。我在 jQuery 中有这个简单的 AJAX 调用:

function getWSData (which, data, idVR)
{
   if(which == 'verCandAll')
   {
      funcSuccess = verCandSuccess;
      data = {'name' : 'val'};
   }
   else 
   {
      funcSuccess = verElseSuccess;
      data = {'name2' : 'val2'};
   }

   $.ajax({
      type: 'POST',
      url: wsURL,
      data: data,
      success: funcSuccess,
      error:function ()
      {
           $("#msg").ajaxError(function()
           {
               popWaiting(false);
               alert(verGenericCallError);
           });
      },
      dataType: 'xml'
   });
}

function verCandSuccess(xml){ ... }

function verElseSuccess(xml){ ... }

这真的很简单。我唯一的问题是success回调。如果verElseSuccess我将向该函数发送第二个参数,更准确地说,我将处理idVR(的输入参数getWSData)。我怎样才能做到这一点?

4

2 回答 2

2

为此,您可以执行以下操作:

...
if(which == 'verCandAll') {
    ...
}
else {
    // create an anonymous function that calls verElseSuccess with a second argument
    funcSuccess = function(xml) {
       verElseSuccess(xml, idVR);
    };
    data = {'name2' : 'val2'};
}
...
于 2013-05-02T10:40:23.110 回答
1

使用 Underscore.js部分函数:

funcSuccess = _.partial(verElseSuccess, idVR);
于 2013-05-02T10:39:42.310 回答