angularjs操作indexeddb
2015-10-09 10:44
585 查看
angularjs操作indexeddb
angular.module('app') .service('DBUtil', function ($http,$q) { var _self = this; var myDB = { name : 'db', version : 1 , db : null }; _self.openDB = function (name, version, stores) { var d = $q.defer(); var name = version || myDB.name; var version = version || myDB.version; //打开数据库 var result = window.indexedDB.open(name,version); //错误 result.onerror = function(e){ console.log("Open DB Error!"); d.reject("error"); }; //正确打开 result.onsuccess = function(e){ myDB.db = e.target.result ; d.resolve("success"); }; //数据库版本变更 result.onupgradeneeded = function(e){ myDB.db = e.target.result ; if(!myDB.db.objectStoreNames.contains('users')){ myDB.db.createObjectStore('users',{keyPath: "id"}); } if(!myDB.db.objectStoreNames.contains('infos')){ myDB.db.createObjectStore('infos',{autoIncrement: true}); } d.resolve("upgradeneeded"); }; return d.promise; }; _self.get = function (db,storeName,key) { var d = $q.defer();//promise db = db || myDB.db;//check db whether input var transaction = db.transaction(storeName,'readonly'); var store = transaction.objectStore(storeName); var result = store.get(key); result.onsuccess = function (e) { _self.result = e.target.result; d.resolve(); }; result.onerror = function (e) { d.reject(); }; return d.promise; }; _self.put = function (db,storeName,value) { db = db || myDB.db; var transaction = db.transaction(storeName,'readwrite'); var store = transaction.objectStore(storeName); if(value !== null && value !== undefined){ store.put(value); } }; _self.remove = function (db,storeName,value) { db = db || myDB.db; var transaction = db.transaction(storeName,'readwrite'); var store = transaction.objectStore(storeName); var result = store.delete(value); result.onsuccess = function (e) { console.log(e); }; result.onerror = function (e) { console.log(e); }; }; return _self; });
相关文章推荐
- AngularJS 表格
- Angularjs基础知识
- angularJs自定义指令用到的属性和方法
- angularjs学习笔记—事件指令
- angularjs学习
- AngularJS Filters
- AngularJS 控制器
- 集DDD,TDD,SOLID,MVVM,DI,EF,Angularjs等于一身的.NET(C#)开源可扩展电商系统–Virto Commerce
- angular+rest+auth
- 关于angularjS与jQuery框架的那些事
- AngularJS的优缺点
- 认识AngularJS
- AngularJS理论基础
- angularJs基础
- JQuery、AngularJs动态加载其他页面
- Angularjs的核心概念
- angularjs 实现 文件拖拽,缩略图显示
- angularjs的service
- 学习angularjs时遇到 XX is not a function
- AngularJS 指令