Как передать переменную в функцию обратного вызова метода страницы успеха

Я использую asp.net PageMethods. Так вот, как я делаю вызов метода из JavaScript

function hello()
{
    var a =10;
    PageMethods.SaveData(JSON.stringify(basicInfo), SaveSuccessCallback, SaveFailedCallback);
}

И вот мой успех перезвонил условие

    function SaveSuccessCallback(response) {
    //handle success code here
    ShowEdit();
}

Теперь я хотел справиться с ShowEdit() основанный на переменной a который находится в функции привет. Вопрос в том, что я не знаю, возможно ли это пройти a от hello в SaveSuccessCallback,Note: я не могу сделать a Глобальный.

1 ответ

Решение

Вы можете использовать закрытие:

var a = 10;
PageMethods.SaveData(
    JSON.stringify(basicInfo),
    function(response) { 
        SaveSuccessCallback(response);
        ShowEdit(a);
    }, SaveFailedCallback);

function SaveSuccessCallback(response) {
   //handle success code here
}

Вы можете предпочесть сделать это немного чище, обернув замыкание другим способом:

PageMethods.SaveData(
    JSON.stringify(basicInfo), SaveSuccessCallback(10), SaveFailedCallback);

function SaveSuccessCallback(a) {
    return function(response) {
        //handle success code here
        ShowEdit(a);
    };
}
Другие вопросы по тегам