2016-02-19 176 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

谢谢!它工作,我永远不会猜测我自己的。 –