2014-12-02 2 views
0

Я работаю с проверкой достоверности с использованием ионных и угловых символов, что я хотел, когда пользователь уже зарегистрировался, а затем перейдите на страницу участника, когда есть запрос на http post/get/else, я хочу добавить http заголовок запроса, я был успешным, если не использовать sqlite, но когда я изменил свой код с помощью sqlite (плагин ngCordova), я получил ошибку. он возвращает пустоту без информации в моем журнале Xcode. здесь кодsqlite ngCordova с использованием ионной обратной заготовки

//app.js

'use strict'; 

var db = null; 
angular.module('logiseraApp', ['ionic','ngCordova']) 
.run(function($ionicPlatform, $cordovaSQLite) { 

    $ionicPlatform.ready(function() { 
    //SQLite database 
    db = $cordovaSQLite.openDB("my.db", 1); 
    //create tables 
    db.transaction(function(tx) { 
     //create session table 
     tx.executeSql('CREATE TABLE IF NOT EXISTS session (id integer primary key, name varchar(50), value text)'); 

     }, function(e) { 
     console.log("ERROR: " + e.message); 
    }); 
    }); 
}) 

//this is my focus error 
//i check if session is not empty 
//and fetch user data then store to config.headers 
//there is no error if i"m not using sqlite 
.factory('authInterceptor', function($location, $q, $cordovaSQLite) { 
    return { 
    request: function(config) { 
     config.headers = config.headers || {}; 

     var query = "SELECT value from session where name = ? limit 1"; 
     $cordovaSQLite.execute(db, query, ["userdata"]).then(function(res) { 
      if(res.rows.length > 0){ 
       console.log("result length", res.rows.length); 
       var userdata = JSON.parse(res.rows.item(0).value); 
       //apache 
       //config.headers.token_user_id = userdata.user_id; 
       //nginx 
       config.headers['Token-User-Id'] = userdata.user_id; 
      } 
     }, function (err) { 
      console.error(err); 
     }); 

     return config; 
    } 
    }; 
}) 

.config(function($stateProvider, $urlRouterProvider, $httpProvider) { 
    $httpProvider.interceptors.push('authInterceptor'); 
}); 

Спасибо,

ответ

0

Пробуйте попытку с другим SQLITE-заявление, где целое число, ключ, VARCHAR (50) и текстовые типы удалены, например:

tx.executeSql('CREATE TABLE IF NOT EXISTS session (id, name, value)'); 

целочисленные и текстовые типы должны не быть проблемой, но VARCHAR не урожденной при использовании текстового типа. Это должно хотя бы создать таблицу, если она еще не существует.

Я работаю над проектом Cordova и мы используем SQLite тоже, но в нашей SQLITE-заявлениях используются только уникальный для суррогатного ключа. Мы используем это plugin, и все данные, такие как float или string, сохраняются в соответствии с их исходным типом.

Смежные вопросы