如何使用离子将数据插入到SQLite中

时间:2016-04-22 06:56:51

标签: sqlite ionic-framework

我是离线的新手。我想将数据添加到来自远程服务器的SQLite中。我已成功将数据填充到list.so如何将此数据存储到sqlite中。这是我的代码。如何将此数据传递给查询。我无法执行此操作。

service.js

angular.module('starter.service',[]).
  factory('userServices',['$http',function($http){
    var users = [];

    return {
      get: function(){
        return $http.get("http://xxxxxxxxx-info").then(function(response){
          users = response.data;

          return users;

        });
      },
      remove:function(content){
        users.splice(users.indexOf(content),1);
      },
      getUser:function(chatId)
      {
        for(var i=0; i<users.length;i++){
          if(users[i].content_id === parseInt(chatId)){
            return users[i];

          }
        }
        return null;
      }
    }
  }]);

controller.js

 angular.module('shoppingPad.controller', [])


      .controller('ChatCtrl', function ($scope, userServices, $ionicModal, $cordovaSQLite) {
        console.log('inside controller');
       userServices.get().then(function (users) {
          //users is an array of user objects
          $scope.contents = users;
          console.log($scope.contents);
          var query = "INSERT INTO content (content_id, display_name) VALUES (?,?)";
          $cordovaSQLite.execute(db, query, [users.content_id, users.display_name]).then(function (res) {
            alert(res);
            alert('Inserted');
          }, function (e) {
            alert('Error:' + e.message);
          });
        });

1 个答案:

答案 0 :(得分:0)

你在哪里定义db?等到设备准备就绪是必要的。

$ionicPlatform.ready(function () {
    var db = $cordovaSQLite.openDB({ name: "my.db" });

    // just first time you need to define content table
    $cordovaSQLite.execute(db,"CREATE TABLE content (content_id integer, display_name text)");

    userServices.get().then(function (users) {
          //users is an array of user objects
          $scope.contents = users;
          console.log($scope.contents);
          var query = "INSERT INTO content (content_id, display_name) VALUES (?,?)";
          $cordovaSQLite.execute(db, query, [users.content_id, users.display_name]).then(function (res) {
            alert(res);
            alert('Inserted');
          }, function (e) {
            alert('Error:' + e.message);
          });
    });
});

您确定,您的对象用户看起来像

{
     "content_id":12,
     "display_name":"hello world"
}

而不喜欢

  [
    {
         "content_id":12,
         "display_name":"hello world"
    },
    {
         "content_id":13,
         "display_name":"stackoverflow"
    },
    ...
]

我只是问,因为users听起来不止一个条目。