【问题标题】:Get data from indexedDB using dexie and angular使用 dexie 和 angular 从 indexedDB 获取数据
【发布时间】:2021-10-15 04:47:26
【问题描述】:

我正在使用 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 中的存储方式。

indexedDB Data

【问题讨论】:

    标签: angular angular10 dexie


    【解决方案1】:

    需要传递对象的Id才能获取

    https://dexie.org/docs/Table/Table.get()

    我看到您正在使用自动递增的主键“Id”。这是你的意图吗?如果是这样,您需要存储 Table.add() 返回的 Id 并将其用作 Table.get() 的参数。您还可以在调用 Table.add() 时通过将属性 Id 添加到要存储的对象来选择指定显式 id。在这种情况下,您也可以考虑使用 Table.put() 代替,因为它会接受覆盖现有 id 而 Table.add() 如果已经存在具有相同 id 的对象,则会失败。

    【讨论】:

      猜你喜欢
      • 2020-03-30
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 2019-06-17
      • 2021-06-24
      • 2018-08-13
      • 2018-03-18
      • 2021-04-01
      相关资源
      最近更新 更多