您的位置:首页 > 数据库

ionic---数据本地存储sqlite

2017-02-27 17:45 423 查看

插件安装

ionic plugin add cordova-sqlite-storage


选择操作数据库的库PouchDB

下载PouchDBjs库

自行下载或者使用bower管理器下载

index引入PouchDBjs库

<script src="lib/pouchdb/dist/pouchdb.min.js"></script>


PouchDBjs中文api(百度翻译)

http://blog.csdn.net/qq_29287973/article/details/53334075


将操作数据库的方法封装成Service

.factory('appSQL', function() {
var _db;
_db = new PouchDB('appSQL', {adapter: 'websql'});
return {
initDB: function () {
_db = new PouchDB('appSQL', {adapter: 'websql'});
},
getinfo: function (id,callback) {       //获取数据库信息
_db.get(id).then(function (result) {
callback(result);
}).catch(function (err) {
callback(err);
});
},
updataInfo:function(id,data,callback){ //更新或者添加数据库信息
_db.get(id).then(function(doc) {
return _db.put({
_id: id,
_rev: doc._rev,
data: data
}).then(function (response) {
callback(response);
});
}).catch(function (err) {
if(err.status == '404'){
_db.put({
_id: id,
data: data
}).then(function (response) {
callback(response);
});
}
});
},
removeInfo: function (id) {             //删除数据库信息
_db.get(id).then(function(doc) {
return _db.remove(doc);
})
}
}
})


appSQL服务的使用

初始化(在app.js中初始化)

.run(function($ionicPlatform,appSQL,$cordovaNativeAudio) {
console.log('leason');
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)

appSQL.initDB();
.
.
.


控制器中调用(将appSQL服务注入)

//更新添加数据
$scope.login = function () {
var opr = 'login',
action = 'login.do ',
psw = hex_md5(hex_md5(hex_md5($scope.loginCtrl.psw))),
tel = $scope.loginCtrl.tel;
var data = {
user_name:tel,
pwd:psw
};
var sqlData = {
'user_name':tel
};
if(regularServe.tel.test(tel)){
mainServe.showLoading();
ajaxServe.pubAjax(opr,data,action,function(data){
$cordovaToast.show(data.msg, 'long', 'top');
$rootScope.loginState = true;
appSQL.updataInfo(SSID,data.ssid);      //可以不写回调
appSQL.updataInfo(PER_INFO,sqlData,function () {
mainServe.hideLoding();
$state.go('tab.index', {}, {
reload: true
});
});
});
}else{
$cordovaToast.show('手机号格式错误!', 'long', 'top');
}
}
//取已经有的数据数据(判断是否登录)
appSQL.getinfo(PER_INFO,function (data) {
if(data.status == '404'){
$cordovaToast.show('请先登录!', 'long', 'top');
$location.path('/tab/index/login');
}else {
if (data.data.user_name == '' || data.data.user_name == undefined) {
$cordovaToast.show('请先登录!', 'long', 'top');
$location.path('/tab/index/login');
} else {
console.log('login');
socket.init();
}
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: