热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TypeError:无法读取未定义的属性"openDatabase"

如何解决《TypeError:无法读取未定义的属性"openDatabase"》经验,为你挑选了1个好方法。

我想第一次使用带有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

在这样的一些文章中:如何在Ionic Framework中使用ngCordova s​​qlite服务和Cordova-SQLitePlugin? 建议使用这样的命令:ionic start myApp sidemenu
我不知道它是什么,我只是使用cordova命令:cordova run android或者cordova create my_project
我应该怎么做才能从我的cordova项目中创建一个表?



1> Nic Raboy..:

您可以查看本教程:

https://www.thepolyglotdeveloper.com/2014/11/use-sqlite-instead-local-storage-ionic-framework/

当您看到此错误时:

TypeError: Cannot read property 'openDatabase' of undefined

这是因为以下几个原因之一:

    您没有将$cordovaSQLite方法包装在$ionicPlatform.ready()函数中.

    您正尝试从Web浏览器测试此本机插件.

    您实际上没有将基础SQLite插件安装到项目中.

导致此错误的最常见原因是#1和#2.本机插件必须在应用程序确认就绪后才能使用,因此该$ionicPlatform.ready()方法.由于本机插件使用本机代码,因此无法通过Web浏览器对其进行测试.

阅读我链接的教程,因为它可以帮助您.

问候,


推荐阅读
author-avatar
Chickny的造梦空间
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有