【问题标题】:Ionic Framework (AngularJS) and database SQLite 3离子框架(AngularJS)和数据库 SQLite 3
【发布时间】:2014-06-24 08:55:03
【问题描述】:

我有一个问题,是否可以在 AngularJS(SQLite 3 中的这个数据库)中创建、打开、修改和保存数据库?

如果是,你能举个例子吗?感谢您的帮助和浪费时间阅读这篇文章。

【问题讨论】:

  • @Fabio 你找到解决方案了吗?我在创建数据库时遇到了麻烦。总是显示 OpenDatabase undefined
  • @james 是的,但不是使用数据库,而是将文件迁移到文件 json

标签: javascript angularjs cordova sqlite ionic-framework


【解决方案1】:

首先,下载ng-cordova,放到js文件夹中。

index.html,你需要加载ng-cordova。 js导入的顺序很重要。

<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>

<script src="js/ng-cordova.min.js"></script>
<script src="cordova.js"></script>

<!-- your app's js -->

首先在您的app.js 中创建一个名为db 的变量。这对于从所有控制器获取访问权限很有用。

然后在模块依赖处添加'ngCordova'

$ionicPlatform.ready() 中,您必须打开您的数据库。如果你愿意,你也可以从这里执行查询。

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

  .run(function($ionicPlatform, $cordovaSQLite) {
     $ionicPlatform.ready(function() {

         db = $cordovaSQLite.openDB({name: "mydatabase.db"});
         $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS tags (id integer primary key, name text)");
     });
  })

在您的控制器中添加$cordovaSQLite,现在您可以在控制器内执行查询。

同样适用于作用域函数。

.controller('TagsCtrl', function($scope, $cordovaSQLite) {

        var query = "SELECT Count(id) AS count FROM tags";
        $cordovaSQLite.execute(db, query).then(function(result) {
            if (result.rows.item(0).count > 0) {
                alert("database has rows");
            } else {
                alert("0 rows");
            }
        }, function(error) {
            alert("error");
        });
 })

我不知道这是否是最好的方法,但它确实有效。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2011-03-08
    • 1970-01-01
    • 2019-12-03
    相关资源
    最近更新 更多