【发布时间】:2012-12-31 08:35:16
【问题描述】:
我有一个正在运行的 PhoneGap 数据库事务,我可以在其中运行 sql 查询并处理结果。但是,为了使其可重用,我需要将参数传递给查询函数。应该有比在查询函数中声明全局变量并访问它们/重置更好的方法。感谢您在转换此内容方面的任何帮助:
//update images function
function updateGalleryCovers() {
var db = window.openDatabase("test db", "1.0", "Cordova DB", 200000);
db.transaction(queryDB_u_g, errorCB);
}
//Query the database
function queryDB_u_g(tx) {
var query = 'SELECT cover_img, objectId FROM USER_GALLERY WHERE userId="'+getUserId()+'"';
tx.executeSql(query, [], querySuccess_u_g, errorCB);
}
//Query success callback
function querySuccess_u_g(tx, results) {
var len = results.rows.length;
for (var i=0; i<len; i++){
// process results
}
}
到这样的事情:
//update images function
function updateGalleryCovers(userid) {
var db = window.openDatabase("test db", "1.0", "Cordova DB", 200000);
db.transaction(queryDB_u_g, userid, errorCB);
}
//Query the database
function queryDB_u_g(tx, userid) {
var query = 'SELECT cover_img, objectId FROM USER_GALLERY WHERE userId="'+userid+'"';
tx.executeSql(query, [], querySuccess_u_g, errorCB);
}
//Query success callback
function querySuccess_u_g(tx, results) {
var len = results.rows.length;
for (var i=0; i<len; i++){
// process results
}
}
谢谢!
【问题讨论】:
-
为什么你的第二个例子不起作用?我很确定您可以将变量传递给函数并使用它们。
-
@Leeish:phonegap Database.transaction() 方法接受执行查询的函数的名称,后跟回调函数的名称。没有规定传递我所知道的论点。 docs.phonegap.com/en/2.3.0/…
-
让我看看我的一些代码...
标签: javascript android cordova jquery-mobile