10

我正在尝试使用 Phonegap 通知在我的 Phonegap 应用程序中显示错误消息,然后允许用户通过电子邮件发送错误消息。唯一的问题是我无法将错误消息传递给回调函数,从而导致电子邮件无用。

我现在的代码如下所示:

function displayError(errormsg) {
    navigator.notification.confirm(
                                   errormsg,
                                   onConfirm,
                                   'Error',
                                   'Submit, Cancel'
                                   );
}
function onConfirm(buttonIndex){
    if (buttonIndex === 1){
        alert(errormsg);
    }

}

哪个被调用displayError("Test"),哪个会产生错误内容Test。然后我想传递errormsgonConfirm,但我不知道该怎么做,或者是否可能。

我正在考虑的一个可能的解决方案是:

function displayError(errormsg) {
    test = errormsg
    navigator.notification.confirm(
                                   errormsg,
                                   onConfirm,
                                   'Error',
                                   'Submit, Cancel'
                                   );
}
function onConfirm(buttonIndex){
    if (buttonIndex === 1){
        alert(test);
    }

}

但这不会改变errormsg是否显示新错误。我确认了这一点,因为在模拟器设置中,我的应用程序抛出了两个错误。第一个在使用该方法时工作正常,传递test,但随后的第二个错误使用原始变量,而不是最近的变量。

4

1 回答 1

37
function displayError(errormsg) {
    navigator.notification.confirm(
        errormsg,
        function(buttonIndex){
            onConfirm(buttonIndex, errormsg);
        },
        'Error',
        'Submit, Cancel'
        );
}
function onConfirm(buttonIndex, errormsg){
    if (buttonIndex === 1){
        alert(errormsg);
    }

}

将它包装在匿名函数中怎么样?这样,您可以传递任意数量的参数,同时保持范围。

于 2012-12-04T23:51:25.483 回答