javascript - 从对象中检索数据在 Ionic 中不起作用

标签 javascript ios sql cordova ionic-framework

我已将 $cordovaSQLite 附加到我的 ionic 应用程序。这是代码的基本示例。

function retrieve() {
var q = $q.defer();

var query = 'SELECT user_credentials, user_id FROM Users;';

$ionicPlatform.ready(function (){
  $cordovaSQLite.execute(db, query).then(function(res) {
    if (res.rows.length > 0) {
      console.log("found user");
      console.log(res);
      console.log(JSON.stringify(res));
      q.resolve(res.rows[0]);
    } else {
      console.log("no rows found");
      q.resolve(false);

    }
  }, function (err) {
    q.reject(err);
  });
});

return q.promise;
}

这是打开数据库的代码。

if(window.cordova) {
  // App syntax
  db = $cordovaSQLite.openDB( "CoolApp.db" );
} else {
  // Ionic serve syntax
  db = window.openDatabase("CoolApp.db", "1.0", "Cool App", -1);
}

当我在 Chrome 上测试我的应用程序时,我的日志显示了这一点

rows: SQLResultSetRowList
  0: Object
    user_credentials: "asdf"
    user_id: 234
  length: 1
rowsAffected: 0

但是,当我在我的 iOS 应用程序或 Safari 上运行时查看日志时,我收到

{"rows":{"length":1},"rowsAffected":0,"insertId":1}

我的问题是为什么我没有收到 rows 的值?为什么这在浏览器上有效,但在 iOS 上无效?

最佳答案

如果返回多个结果,可以通过对应索引的rows.item方法查询得到结果。

var elements = [];
for (var i = 0; i < result.rows.length; i++) {
    elements.push(result.rows.item(i));
}
return elements;

其中 result 是 $cordovaSQL 在它的 promise 完成时返回的对象。

关于javascript - 从对象中检索数据在 Ionic 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31660729/

相关文章:

SQL生成从1到100的数字列表

javascript - clone() 的问题 - 事件

ios - Objective-C 中的数组初始化问题

ios - 是否可以在 iphone 上的多个应用程序之间共享守护进程?

mysql - 需要一个 sql 查询来查找 'customer info' 表中所有带空格的 3 部分名称

java - 如何更新外键列?

除非运行开发人员工具,否则 Javascript 无法运行

javascript - 通过 ID 为表创建一个自动粗体 ??用javascript

javascript - knockout : observableArray of arrays of observable inputs

ios - init 中额外调用 'color'