Javascript 德克西-表<;表名>;不属于交易的一部分

Javascript 德克西-表<;表名>;不属于交易的一部分,javascript,indexeddb,dexie,Javascript,Indexeddb,Dexie,我正在开发一个简单的应用程序,用节点构建一棵树。我有以下钩子设置,这样当从树中删除节点时,所有子节点都将被删除,并且这些节点的所有关联也将被删除。我正在使用以下代码尝试创建此行为: //删除节点钩子 db.nodes.hook('deleting',函数(键、记录、事务){ //删除节点后,请转到删除其关联 this.onsuccess=函数(){ console.log(事务); transaction.links.where('node').equals(record.id).delete

我正在开发一个简单的应用程序,用节点构建一棵树。我有以下钩子设置,这样当从树中删除节点时,所有子节点都将被删除,并且这些节点的所有关联也将被删除。我正在使用以下代码尝试创建此行为:

//删除节点钩子
db.nodes.hook('deleting',函数(键、记录、事务){
//删除节点后,请转到删除其关联
this.onsuccess=函数(){
console.log(事务);
transaction.links.where('node').equals(record.id).delete();
};
});
//删除链钩
db.links.hook('deleting',函数(键、记录、事务){
//启动“删除级联”以防止死条目
this.onsuccess=函数(){
transaction.nodes.where('id').equals(record.child).delete();
};

});为了用一个代码示例来完成作者的回答,您可以通过将“links”表添加到语句中来纠正这个问题,在该语句中,作为参数传递到hook方法中的事务被实例化。问题中没有显示此语句,但它应该看起来像这样

db.transaction('rw', db.nodes, function () { ... }
如果是这种情况,更正的代码将是

db.transaction('rw', db.nodes, db.links, function () { ... }