首页 > 学院 > 开发设计 > 正文

ionic---数据本地存储sqlite

2019-11-06 09:53:15
字体:
来源:转载
供稿:网友

插件安装

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(); } }});
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表