在main.qml中我导入了一个javascript文件:
import "./js/noteDB.js" as NoteDB
在里面我想用数据库来保存和加载状态,所以我打电话,
Component.onCompleted: {
NoteDB.openDB()
}
其中openDB()在noteDB.js文件中定义:
function openDB() {
print("noteDB.createDB()")
_db = openDatabaseSync("StickyNotesDB", "1.0",
"The stickynotes Databes", 1000000);
createNoteTable();
}
但是我收到以下错误: ReferenceError:未定义openDatabaseSync *
PS:在Qt-Quick中的错误报告后,我尝试了,而不是调用openDB()来执行此操作: var _db = NoteDB.LocalStorage.openDatabaseSync(“StickyNotesDB”,“1.0”, “TheStickynotesDatabes”,1000000); 但是给出类似的错误: TypeError:无法调用未定义的方法'openDatabaseSync'
感谢所有能指出我正确方向的人。
答案 0 :(得分:1)
我已经使用我的Qt 5.2进行了测试,但是当我有
时它似乎正常工作 1 import QtQuick.LocalStorage 2.0
2 import QtQuick 2.0
3 import "noteDB.js" as NoteDB
4
5 Item {
6 Component.onCompleted: {
7 NoteDB.openDB();
8 }
9 }
和
1 function openDB() {
2 print("noteDB.createDB()")
3 var _db = LocalStorage.openDatabaseSync("StickyNotesDB", "1.0",
4 "The stickynotes Databes", 1000000);
5 }
所以,我建议你写LocalStorage.openDatabaseSync
并仔细检查import QtQuick.LocalStorage 2.0
是否存在。
答案 1 :(得分:0)
请尝试以下代码:
.import QtQuick.LocalStorage 2.0 as Sql
...
var _db = Sql.LocalStorage.openDatabaseSync("StickyNotesDB", "1.0",
"The stickynotes Databes", 1000000);