我想第一次使用带有cordova框架的sqlite。正如我在教程中读到的那样,我应该像这样使用ngcordova:
var db = null;
app.controller('mainCtrl', function ($scope, $ionicSideMenuDelegate) {
$scope.toggleLeft = function () {
$ionicSideMenuDelegate.toggleLeft();
}
$scope.toggleRight = function () {
$ionicSideMenuDelegate.toggleRight();
}
})
.controller('home_ctrl', function ($scope, $cordovaSQLite) {
db = $cordovaSQLite.openDB({name: "my.db"});
//db = $window.opendb({name: "my.db"});
$cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS people(id integer primary key, firstname text, lastname text)")
})
;
当我运行此代码时出现错误:
TypeError: Cannot read property 'openDatabase' of undefined
在某些文章中:How do I use the ngCordova sqlite service and the Cordova-SQLitePlugin with Ionic Framework?
建议使用如下命令:ionic start myApp sidemenu
我不知道它是什么,我只使用cordova命令:cordova run android
或cordova create my_project
我应该怎么做才能从我的cordova项目中创建一个表?
答案 0 :(得分:48)
您可以查看本教程:
https://www.thepolyglotdeveloper.com/2014/11/use-sqlite-instead-local-storage-ionic-framework/
当您看到此错误时:
TypeError: Cannot read property 'openDatabase' of undefined
这是因为以下几个原因之一:
$cordovaSQLite
方法包裹在$ionicPlatform.ready()
函数中。此错误的最常见原因是#1和#2。必须在确认应用程序就绪后才能使用本机插件,因此必须使用$ionicPlatform.ready()
方法。由于本机插件使用本机代码,因此无法通过Web浏览器对其进行测试。
阅读我链接的教程,因为它可以帮助您。
此致
答案 1 :(得分:0)
实际上,我打开了一个旧项目,并且仅当我使用-cls运行该项目时,才出现此错误(因为使用了liverelaod)。但是我有一个小错误可以修复,所以我没有做太多调查(只是不使用livereload就可以修复)。但是也许这个小提示对某人有帮助。