【发布时间】:2015-02-21 08:58:34
【问题描述】:
我想在 ionic 中将 SQLite 数据添加到我的移动应用程序中,我已按照以下站点 https://blog.nraboy.com/2014/11/use-sqlite-instead-local-storage-ionic-framework/ 中的教程逐步进行操作,但它仍然无法在物理设备上运行,请提供任何建议。 在 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 表中
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}} 但是当我在浏览器上运行它时出现以下错误无法读取未定义的属性“openDatabase”,我在物理设备上运行它但仍然无法工作
【问题讨论】:
-
我不认为你会得到这么多信息的任何答案。您可能应该显示您的代码、预期内容、错误等。
-
好的,我写了细节,谢谢你的建议
-
很高兴您使用了我的教程!如果您仔细查看
db = $cordovaSQLite.openDB("test.db");,您会发现这是不正确的。参数不是字符串。它必须是一个对象。试着把{ name: "test.db" }放在那里,让我们知道它是怎么回事。 -
@Nic:在你的教程中你写的是“test.db”而不是对象。哪个是正确的?
-
我相信 API 发生了变化,您想使用字符串,而不是对象。
标签: cordova ionic-framework cordova-plugins ionic application-icon