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(); } } });
相关文章推荐
- 开发基于Safari的wap网站时,本地数据存储(sessionStorage localStorage sqlite)小结
- C# SQLite数据本地存储方案
- C#数据本地存储方案之SQLite
- ionic app中如何使用PouchDB+SQLite作为本地存储
- C#数据本地存储方案之SQLite
- C#数据本地存储方案之SQLite
- C#数据本地存储方案之SQLite
- IOS开发模块总结(一)本地数据存储3 sqlite(FMDB开源代码对sqlite的封装)
- ionic 通过PouchDB + SQLite来实现app的本地存储
- C#数据本地存储方案之SQLite
- Android本地数据存储之SQLite关系型数据库 ——SQLiteDatabase
- iOS应用程序安全(20)-本地数据存储及其安全性(NSUserDefaults, CoreData, Sqlite, Plist 文件)
- C# 数据本地存储方案之SQLite [转]
- 一起谈.NET技术,C#数据本地存储方案之SQLite
- Android本地数据存储之SQLite关系型数据库 ——SQLiteDatabase
- iOS应用程序安全(20)-本地数据存储及其安全性(NSUserDefaults, CoreData, Sqlite, Plist 文件)
- iOS应用程序安全(20)-本地数据存储及其安全性(NSUserDefaults, CoreData, Sqlite, Plist 文件)
- iOS应用程序安全(20)-本地数据存储及其安全性(NSUserDefaults, Keychain,CoreData, Sqlite, Plist 文件)
- Android本地数据存储之SQLite
- ionic 通过PouchDB + SQLite来实现app的本地存储(Local Storage)