angularjs - 无法读取未定义的属性 'openDatabase'

标签 angularjs cordova android-sqlite phonegap-plugins

我正在使用Phonegap框架。所有 js 文件均已完全加载。 我正在使用以下语句。

var db = window.sqlitePlugin.openDatabase({ name: "MyDB.db" });

但我收到如下错误:

TypeError: Cannot read property 'openDatabase' of undefined

有什么建议吗?

最佳答案

有几点需要了解:

  • 数据库事件只能在 onDeviceReady() 方法触发时完成
  • 为此,我将在 modules .run() 方法中打开数据库,如下所示:

    db = $cordovaSQLite.openDB("my.db");
    

在编写此行之前,请确保您已添加 SQLite 插件 并在项目中添加 $cordovaSQLite 依赖项。

这是一个例子:

var db = null;
var example = angular.module('starter', ['ionic', 'ngCordova'])



.run(function($ionicPlatform, $cordovaSQLite) {
    $ionicPlatform.ready(function() {
        if(window.cordova && window.cordova.plugins.Keyboard) {
            cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
        }
        if(window.StatusBar) {
            StatusBar.styleDefault();
        }
        db = $cordovaSQLite.openDB("my.db");
        $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS people (id integer primary key, firstname text, lastname text)");
    });
});

希望这对您有用。作为引用,您可以使用 this :

关于angularjs - 无法读取未定义的属性 'openDatabase',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32862851/

相关文章:

android - 使用 sqlite 数据库在 Android 中完成登录和注册?

javascript - 如何在两个 Angular 模块中使用相同的服务

javascript - 电话间隙 3.0.0 : BarcodeScanner Plugin

angularjs - Angular - 广播,$on 在指令中多次调用

javascript - ionic2 项目的自定义 cordova 插件创建

android - 带有phonegap的ajax请求

android - 订阅多个 Observable 的适配器

android - 删除 ListView 和sqlite的行

javascript - AngularJS 中可配置的授权角色

java - Access-Control-Allow-Origin 是否足以防止 XSRF 攻击?