2

Ionic でモバイル アプリケーションに SQLite データを追加したいのですが、次のサイトでチュートリアルを段階的に実行しましたフレームワーク/ですが、それでも物理デバイスでは機能しません。アドバイスはありません。index.html に次のコードを入れます `

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

<script src="lib/ionic/js/angular-ui/angular-ui-router.js"></script>
<script src="lib/ionic/js/angular/angular-resource.js"></script>



<!-- Needed for Cordova/PhoneGap (will be a 404 during development) -->
<script src="js/app.js"></script>
<script src="js/ng-cordova.min.js"></script>
<script src="cordova.js"></script>`  

私のapp.jsで、次のコードを最初のコードに書きました

     var db=null;
     var myApp=angular.module('myApp',['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("test.db");
    $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS people (id integer primary key, firstname text, lastname text)");
    console.log("hello");
})

}))

people という名前のテーブルを作成し、ログインコントローラーで people テーブルに1行を挿入します

controller('loginController',function($scope,$cordovaSQLite){

    var query = "INSERT INTO people (id,firstname, lastname) VALUES (?,?,?)";
    $cordovaSQLite.execute(db, query, [1,"khaled", "omar"]).then(function(res) {
        $scope.name=res.insertId;
    }, function (err) {
        $scope.name="error";
    });

login.html に {{name}} と書きましたが、ブラウザで実行すると、undefined のプロパティ 'openDatabase' を読み取れないというエラーが表示され、物理デバイスで実行しましたが、まだ機能しません

4

5 に答える 5

1

コードは正常に機能していますが、エラーはコントローラーの問題に起因しているようです。

于 2014-12-29T09:05:03.330 に答える
0

$ionicPlatform.ready() は、cordova を使用する前に起動する必要があります。

于 2016-05-04T03:15:05.180 に答える