angular - 使用 dexie 和 angular 从 indexedDB 获取数据
问题描述
我正在使用 Dexie indexedDB。我可以将我的数据数组插入 indexedDb,但我无法从 indexedDB 中检索我的数据。下面是我尝试过的代码。
制作数据库
makeDatabase() {
this.db = new Dexie('CartDB');
this.db.version(1).stores({
CartList: '++Id,List'
});
}
添加到索引
addRow() {
this.db.CartList.add({
List: this.items
});
}
获取数据
loadRows() {
this.db.table("CartList").get().then(p => this.items = p);
}
这就是我的数据在 indexedDB 中的存储方式。
解决方案
您需要传递对象的 Id 才能获取
https://dexie.org/docs/Table/Table.get()
我看到您正在使用自动递增的主键“Id”。这是你的意图吗?如果是这样,您需要存储 Table.add() 返回的 Id 并将其用作 Table.get() 的参数。您还可以选择在调用 Table.add() 时通过将属性 Id 添加到要存储的对象来指定显式 id。在这种情况下,您也可以考虑使用 Table.put() 代替,因为它会接受覆盖现有 id 而 Table.add() 如果已经存在具有相同 id 的对象将失败。
推荐阅读
- c# - 如何在设计时显示 datagridview 行和项目
- python - 迭代自定义类。TypeError:对象不可迭代
- excel - 当我运行此代码时,我的笔记本电脑冻结并且不执行任何任务,我该如何解决这个问题?
- angular - 在一个下拉列表的单击事件中,其他同级组件下拉列表未加载
- javascript - 将功能组件更改为类组件
- python - 如何使用“for in range”向后迭代字符串?(应用程序是验证UPC代码)
- python - 每个时期隐藏层的输出并将其存储在keras的列表中?
- python - 无法使用 python 在 azure 函数中运行另一个 python 脚本
- html-lists - SyntaxError:当前不支持私有字段
- php - 如果在 IIS 上启用了“Windows 身份验证”,则无法读取 PHP 会话数组