Mic*_*ael 9 javascript html5 indexeddb
我试图从W3C获取有关indexedDB数据库中objectStore项的更新的一些信息,但没有那么多的可疑.我在这里找到了一种方法,但它对我来说并不适用.
我的实现是这样的
DBM.activitati.edit = function(id, obj, callback){
var transaction = DBM.db.transaction(["activitati"], IDBTransaction.READ_WRITE);
var objectStore = transaction.objectStore("activitati");
var keyRange = IDBKeyRange.only(id);
objCursor = objectStore.openCursor(keyRange);
objCursor.onsuccess = function(e){
var cursor = e.target.result;
console.log(obj);
var request = cursor.update(obj);
request.onsuccess = function(){
callback();
}
request.onerror = function(e){
conosole.log("DBM.activitati.edit -> error " + e);
}
}
objCursor.onerror = function(e){
conosole.log("DBM.activitati.edit -> error " + e);
}
}
Run Code Online (Sandbox Code Playgroud)
我有所有DBM.activitati.(添加|删除| getAll | getById | getByIndex)方法工作,但我无法解决这个问题.
如果您知道我如何管理它,请告诉我们!
谢谢!
bul*_*ley 17
有关如何更新IDB记录的一些示例,请查看此jsfiddle.我使用另一个StackOverflower工作 - 这是一个相当不错的独立的IndexedDB示例,它使用索引并进行更新.
您似乎正在寻找的方法是put,如果有唯一索引,它将插入或更新记录.在那个示例小提琴中,它的使用方式如下:
phodaDB.indexedDB.addUser = function(userObject){
//console.log('adding entry: '+entryTxt);
var db = phodaDB.indexedDB.db;
var trans = db.transaction(["userData"],IDBTransaction.READ_WRITE);
var store = trans.objectStore("userData");
var request = store.put(userObject);
request.onsuccess = function(e){
phodaDB.indexedDB.getAllEntries();
};
request.onerror = function(e){
console.log('Error adding: '+e);
};
};
Run Code Online (Sandbox Code Playgroud)
对于它的价值,你有一些可能的语法错误,拼错"控制台" console.log作为"conosole".
| 归档时间: |
|
| 查看次数: |
27169 次 |
| 最近记录: |