2016-02-19 178 views
2

我認爲這是一個不錯的問題,但無法找到它的直接解決方案。這是我的情況:通過db.transaction函數傳遞參數

var db = window.openDatabase("database.db", "1.0", "Any_Name", 20000); 
db.transaction(queryDB, errorCB); 

//------------------------------------- 

function queryDB (tx) { 
    tx.executeSql('SELECT * FROM my_table', [], querySuccess, errorCB); 
} 

這將運行沒有問題,但是當我試圖通過queryDB功能,我總是得到一個錯誤發送額外的參數,我曾嘗試:

db.transaction(queryDB ("hello"), errorCB); 
db.transaction(queryDB (db, "hello"), errorCB); 
db.transaction(queryDB (tx, "hello"), errorCB); 

function queryDB (tx, param1) { 
     tx.executeSql('SELECT * FROM my_table', [], querySuccess, errorCB); 
    } 

我不確定queryDB函數最初是從哪裏獲取tx值。

謝謝!

回答

2
function queryDBWithParam(param1) { 
    return function(tx) { 
     //you can use parameter param1 
     tx.executeSql('SELECT * FROM my_table', [], querySuccess, errorCB); 
    } 
} 

db.transaction(queryDBWithParam("hello"), errorCB); 
+0

謝謝!它工作,我永遠不會猜測我自己的。 –