TypeError: Cannot read property 'openDatabase' of undefined
TypeError: Cannot read property 'openDatabase' of undefined
我想第一次使用带有 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 项目创建一个 table?
你可以看看这个教程:
https://www.thepolyglotdeveloper.com/2014/11/use-sqlite-instead-local-storage-ionic-framework/
当您看到此错误时:
TypeError: Cannot read property 'openDatabase' of undefined
它的发生有以下几个原因之一:
- 您没有在
$ionicPlatform.ready()
函数中包装 $cordovaSQLite
方法。
- 您正在尝试从网络浏览器测试此本机插件。
- 您实际上还没有将基础 SQLite 插件安装到您的项目中。
此错误最常见的原因是#1 和#2。本机插件,必须在应用程序确认准备就绪后才能使用,因此 $ionicPlatform.ready()
方法。由于本机插件使用本机代码,因此您无法通过网络浏览器对其进行测试。
通读我链接的教程,因为它应该对您有所帮助。
此致,
实际上,我打开了一个旧项目,只有当我 运行 使用 -cls(因为 liverelaod)的项目时才会出现此错误。但是我有一个小错误要在那里修复,所以我没有对其进行太多调查(只是在没有 livereload 的情况下修复它)。但也许这个小提示对某人有帮助。
我想第一次使用带有 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 项目创建一个 table?
你可以看看这个教程:
https://www.thepolyglotdeveloper.com/2014/11/use-sqlite-instead-local-storage-ionic-framework/
当您看到此错误时:
TypeError: Cannot read property 'openDatabase' of undefined
它的发生有以下几个原因之一:
- 您没有在
$ionicPlatform.ready()
函数中包装$cordovaSQLite
方法。 - 您正在尝试从网络浏览器测试此本机插件。
- 您实际上还没有将基础 SQLite 插件安装到您的项目中。
此错误最常见的原因是#1 和#2。本机插件,必须在应用程序确认准备就绪后才能使用,因此 $ionicPlatform.ready()
方法。由于本机插件使用本机代码,因此您无法通过网络浏览器对其进行测试。
通读我链接的教程,因为它应该对您有所帮助。
此致,
实际上,我打开了一个旧项目,只有当我 运行 使用 -cls(因为 liverelaod)的项目时才会出现此错误。但是我有一个小错误要在那里修复,所以我没有对其进行太多调查(只是在没有 livereload 的情况下修复它)。但也许这个小提示对某人有帮助。