为什么无法显示已存储在WebSQL 中的数据?
Why can't display data that has been stored in WebSQL?
我的函数有什么问题?函数 getCart 无法显示存储在 WebSQL 中的数据。但是我的函数 addToCart 可以工作并且可以将数据存储到 WebSQL。如果你知道我的错误,请帮助我。
angular.module('login').factory('CartService',
['$webSql', '$http', '$q', 'urls',
function ($webSql, $http, $q, urls) {
var factory = {
initdb: initdb,
addToCart: addToCart,
getCart: getCart
};
var db = null;
return factory
function initdb(){
db = openDatabase('CART', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function(transaction){
transaction.executeSql("CREATE TABLE IF NOT EXISTS cart (id INTEGER PRIMARY KEY, name TEXT, price DOUBLE)");
});
}
function addToCart(name, price){
var item = {
"name" : name,
"price" : price
}
console.log('Success add cart');
db.transaction(function(transaction) {
transaction.executeSql("INSERT INTO cart (name, price) VALUES (?, ?)", [name, price]);
getCart();
});
}
function getCart(name){
var item = {
"name" : name
}
db.transaction(function(transaction) {
transaction.executeSql("SELECT * FROM cart name = ?", [name]);
});
}
}
]);
您需要为 executeSql
([name]
后的第 3 个参数)实现回调处理程序,以查看从 websql 数据库中获取的记录.
试试这个
db.transaction(function(transaction) {
transaction.executeSql("SELECT * FROM cart name = ?", [name], function(tx, rs) {
var resultSet = rs.rows;
for ( var counter = 0; counter < resultSet.length; counter++ )
{
console.log( resultSet.item(counter) );
}
});
});
我的函数有什么问题?函数 getCart 无法显示存储在 WebSQL 中的数据。但是我的函数 addToCart 可以工作并且可以将数据存储到 WebSQL。如果你知道我的错误,请帮助我。
angular.module('login').factory('CartService',
['$webSql', '$http', '$q', 'urls',
function ($webSql, $http, $q, urls) {
var factory = {
initdb: initdb,
addToCart: addToCart,
getCart: getCart
};
var db = null;
return factory
function initdb(){
db = openDatabase('CART', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function(transaction){
transaction.executeSql("CREATE TABLE IF NOT EXISTS cart (id INTEGER PRIMARY KEY, name TEXT, price DOUBLE)");
});
}
function addToCart(name, price){
var item = {
"name" : name,
"price" : price
}
console.log('Success add cart');
db.transaction(function(transaction) {
transaction.executeSql("INSERT INTO cart (name, price) VALUES (?, ?)", [name, price]);
getCart();
});
}
function getCart(name){
var item = {
"name" : name
}
db.transaction(function(transaction) {
transaction.executeSql("SELECT * FROM cart name = ?", [name]);
});
}
}
]);
您需要为 executeSql
([name]
后的第 3 个参数)实现回调处理程序,以查看从 websql 数据库中获取的记录.
试试这个
db.transaction(function(transaction) {
transaction.executeSql("SELECT * FROM cart name = ?", [name], function(tx, rs) {
var resultSet = rs.rows;
for ( var counter = 0; counter < resultSet.length; counter++ )
{
console.log( resultSet.item(counter) );
}
});
});