|
楼主 |
发表于 2016-5-27 17:33:12
|
显示全部楼层
define(function(require) {
var $ = require("jquery");
var justep = require("$UI/system/lib/justep");
var SqliteUtil = require("$UI/HouQinApp/sqlite/sqliteUtil");
var _instance = null;
var UseroneDB = function() {
// 在调试场景下,这里可以选择用HTML5的Web SQL Database,在Chrome浏览器远程调试时可以直接看到数据库内容
this.database = window.openDatabase("X5_USERONE_DB", null, null, -1);
// this.database = window.sqlitePlugin.openDatabase({name : "X5_USERONE_DB"});
/*
this.database.transaction(function(tx) {
tx.executeSql("drop table demo_test");
tx.executeSql("drop table demo_region");
});
*/
};
/**
* 这里构建单例,为了让多个页面共用同一个数据连接,避免死锁
*/
UseroneDB.getInstance = function() {
if (!_instance) {
_instance = new UseroneDB();
}
return _instance;
};
/**
* 获取数据库链接
*/
UseroneDB.prototype.getDatabase = function() {
return this.database;
};
/**
* 这里给出一个自动判断并初始化数据库的方案
*/
UseroneDB.prototype.initData = function(onSuccess) {
var db = this.getDatabase();
// 检查表是否已存在
var sqlCheckExists = "SELECT count(*) AS cnt FROM sqlite_master WHERE type = 'table' AND UPPER(name) in ('USERONE','USERTYPE') ";
SqliteUtil.executeSql(db, sqlCheckExists, null, function(res) {
if (res.rows.item(0).cnt < 1) {
// 如果不存在则获取初始化脚本
require(["text!$UI/HouQinApp/sqlite/useroneDB.sql"], function(data) {
executeSqlFile(data);
});
} else {
doSuccess();
}
});
// 执行初始化脚本
function executeSqlFile(content) {
var sqls = content.split(";");
SqliteUtil.executeBatch(db, sqls, null, function() {
doSuccess();
});
}
function doSuccess() {
if ($.isFunction(onSuccess)) {
onSuccess.call(this);
}
}
};
return UseroneDB;
});
这是useroneDB.js文件,
报错页面调用的方法是 var Model = function() {
this.callParent();
this.useroneDB = UseroneDB.getInstance();
};
一到this.useroneDB = UseroneDB.getInstance();就报错 |
|