2012-12-04 18 views
9

Tôi đang cố gắng sử dụng thông báo Phonegap để hiển thị thông báo lỗi trong ứng dụng Phonegap của mình và sau đó cho phép người dùng gửi email lỗi. Vấn đề duy nhất là tôi không thể chuyển thông báo lỗi đến hàm gọi lại, làm cho email vô dụng.Vượt qua hai đối số bằng navigator.notification.confirm?

Code tôi có bây giờ trông như thế này:

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

} 

nào được gọi bởi displayError("Test"), mà sẽ làm cho nội dung lỗi Test. Tôi muốn sau đó vượt qua errormsg vào số onConfirm, nhưng tôi không biết cách thực hiện việc này hoặc nếu có thể.

Một giải pháp có thể, tôi đang cân nhắc là thế này:

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

} 

Nhưng điều đó không làm thay đổi errormsg nếu một lỗi mới được hiển thị. Tôi đã xác nhận điều này vì trong cài đặt giả lập, ứng dụng của tôi ném hai lỗi. Việc đầu tiên hoạt động tốt khi sử dụng phương pháp đó, đi qua trên test, nhưng sau đó lỗi thứ hai mà trực tiếp sau sử dụng biến ban đầu, thay vì một trong những gần đây nhất.

Trả lời

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

} 

Điều gì về gói nó trong một chức năng ẩn danh? Bằng cách đó bạn có thể vượt qua bao nhiêu tham số tùy ý, trong khi vẫn duy trì phạm vi.

+0

Hoạt động hoàn hảo. Tôi thậm chí không nghĩ về điều này ... – Charlie

+0

điều này cũng giúp khi bạn cần giữ phạm vi và sử dụng 'var self = this' thay vì' this'. cảm ơn cho ý tưởng! – escapedcat

+0

Tôi tự hỏi tại sao 22 người dùng bỏ phiếu bình chọn này nhưng không đưa ra câu hỏi. Hệ thống xếp hạng trên trang này để lại rất nhiều điều mong muốn ... – andreszs