Javascript: передача параметров в метод, вызванный обратным вызовом - PullRequest
1 голос
/ 19 апреля 2011

Итак, в моей форме есть кнопка сохранения, которая имеет функцию обратного вызова, которая отключается и проверяет, что пользователь все еще проходит проверку подлинности, прежде чем пытаться сохранить форму, этот обратный вызов затем вызывает фактический метод сохранения, который проверяет форму и сохраняет его, если мы аутентифицированы, или выдает окно входа в систему, если это не так. Моя проблема в том, что этот метод сохранения должен принимать результат обратного вызова (который имеет значение true или false) и некоторые дополнительные аргументы для проверки.

function saveButton_Click(sender, eventArgs, var1, var2, var3)
{
    var authenticated = myCallbackFunction(performSave);
}

function performSave(authenticated, var1, var2, var3)
{
    if (authenticated)
    {
        //do some validation and save
    }
    else
    {
        showLoginWindow();
    }
}

Это код, который я получил до сих пор, который успешно отключается, выполняет обратный вызов и передает результат в executeSave, но, очевидно, он не передает мои дополнительные переменные, поэтому все мои средства проверки не выполняются. Я пробовал следующее:

var authenticated = myCallbackFunction(performSave(authenticated, var1, var2, var3));

но это только кажется, что вызывает обратный вызов, который будет пропущен и аутентифицирован, var1, var2 и т. Д. Всегда проходят как неопределенные. Итак, как я могу успешно передать мои переменные в метод executeSave вместе с результатом моего обратного вызова?

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

Этого можно достичь с помощью локальной области действия.

function saveButton_Click(sender, eventArgs, var1, var2, var3)
{
    myCallbackFunction(function(authenticated){
        performSave(authenticated, var1, var2, var3);
    });
}
0 голосов
/ 19 апреля 2011

Попробуйте разделить объявление и присваивание, как это:

var authenticated = null;
authenticated = myCallbackFunction(performSave(authenticated, var1, var2, var3));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...