您的位置:首页 > Web前端 > AngularJS

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;
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: