作为一个基本示例,我单击一个按钮,然后将记录输入indexeddb对象库。我现在想要用新记录更新observable。
以下代码有效。但是,我想知道这是否是正确的方法。 “getAll”函数是我找到的IndexedDB-getAll-shim。
self.addPersonRecord = function(){
// item being added
data = {name: "Some User", email: "aa2314123@something.com" };
var obj = db.transaction(["people"], "readwrite").objectStore("people");
var req = obj.add(data);
// result of save
req.onsuccess = function(event) {
// get all items from db
obj.getAll().onsuccess = function (ev) {
// update observable
self.chosenPageData({people: ev.target.result});
};
};
};
答案 0 :(得分:0)
你的方法似乎很好。一对夫妇建议改进:
添加后getAll()
没有理由complete
。对象存储添加应该返回主键,然后您可以使用该主键来查找该对象。
我自己使用success
事件而不是event.target.result
事件,因为我发现有时候数据在{{1}}之前实际上并不可用。