问题标签 [dexie]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
73 浏览

promise - Dexie.js 调试代码接管延迟承诺的解决方案

我正在使用 Dexie.js 处理索引存储。但是,它将接管延迟承诺启动的任何进程的异常处理。这使得很难捕获它们发生的错误。

0 投票
1 回答
231 浏览

dexie - Dexie 更新钩子中的异步更改

我试图找出在存储或更改对象时使用钩子向对象添加一些字段的最佳方法。

基本思想是有些entry对象必须包含一堆基于一些复杂查询和其他条目计算的属性。这些计算出来的属性都存储在一个名为 的属性下derivedentry.derived每次需要它或从数据库中读取它时,计算它的成本会非常高。相反,我选择derived提前填充属性,而钩子似乎是这样做的最佳位置。

creating这对钩子来说似乎没有问题。但是,如果更改derived了任何其他属性,我还需要重新生成。entryupdating钩子要求我通过返回它们来提交额外的更改,这是有问题的,因为我可以生成更改的唯一方法是通过异步调用。

下面是一些试图演示该问题的最小代码。我还没有尝试过选项B,但我怀疑它也不起作用。

0 投票
1 回答
231 浏览

sorting - indexeddb 基于整数值的排序索引

我正在使用 Dexie

我需要得到按 sentenceNo 排序的结果

但我从上述查询中得到的结果就像以字符串格式对整数列进行排序

例如:1,11,12,13,14...

如何对整数中的句子编号进行排序

例如:1,2,3,4,...

0 投票
0 回答
114 浏览

angularjs - 我想回调你的方法“startsWithIgnoreCase”

我开发了一个演示项目并使用“dexie.js”配置了索引数据库。问题是当我尝试startsWithIgnoreCase使用回调调用函数时。

在 AngualrJS 服务中:-

在控制器中,

data总是为空,然后我称$rootScope.collectItem这是第一次为空,然后总是显示以前的搜索项。下面是详细信息。

回调不起作用,因为我在索引数据库中有多达 100 条记录,当我调用第一次startsWithIgnoreCase方法时$rootScope.collectItem设置为 null,但我再次尝试调用相同的方法,然后$rootScope.collectItem在第二次显示先前搜索的匹配值。喜欢:

  1. startsWithIgnoreCase在我的自动完成搜索框中,当我输入第“441”项并第一次调用方法然后$rootScope.collectItem设置为空时。
  2. 当我尝试搜索其他项目时没有“885”,然后$rootScope.collectItem显示以前过滤的“441”记录。

注意:我想实现回调,startsWithIgnoreCase但我找不到任何解决方案。

如果有人可以使用 angularjs 获得任何“dexie.js”示例代码,请将该链接发送给我。

0 投票
0 回答
1885 浏览

javascript - 在 Dexie 中更新表

我尝试使用 Dexie 更新 indexedDB 中名为“Type”的字段

我也试试这个:

还有那个:

我的“类型”字段永远不会更新:(

有人可以帮我吗?

图像表详细信息

0 投票
2 回答
2645 浏览

indexeddb - 使用带有索引数据库的 dexie js 获取计数记录。

我们如何从表的所有记录中获取最后 40 条记录。

据我所知,我们可以获得索引数据库表中退出的记录数。

对于相同的...

上面将返回表中的任何计数。现在我想从表中获取最后 40 条记录。每个时间表都会有不同的记录。有可能这样做吗?我们是否也可以将.each 与 count 一起使用!我想获取 count 以及密钥持有的任何数据,我需要返回这些数据并显示它。

0 投票
1 回答
316 浏览

indexeddb - dexie 级联 WhereClause

是否可以级联 Dexie “WhereClause”?

示例:我想使用

但是 WhereClause 对象中的所有方法都返回“Collection”,它只提供过滤器以添加更多过滤器

0 投票
1 回答
408 浏览

indexeddb - IndexedDB 作为数据表 Web 组件的后端

我正在开发一个支持排序、过滤、无限滚动等的数据表/网格 Web 组件。我正在考虑用 IndexedDB(使用 Dexie)替换我现有的数据模型。

我最初的计划是使用单个数据库并为每个组件创建一个“表”。但是,在阅读文档后,我意识到每次添加新表时,数据库的版本都会上升。

这意味着什么?

  • 我需要跟踪这个版本号吗?
  • 如果一个网格正在使用数据库,另一个网格升级数据库,数据会丢失吗?
  • 每个组件使用一个数据库会更好吗?

谢谢你的帮助

0 投票
1 回答
144 浏览

dexie - where({keypath:value, ...}) 符号不起作用

我正在使用Table.where() 文档页面中的官方页面示例:

它根本行不通。它找不到“第一种”方法。

它返回一个WhereClause.

它应该返回一个Collection.

0 投票
1 回答
717 浏览

javascript - dexie - 表不是交易的一部分

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

这就是给我这个错误“未处理的拒绝:NotFoundError:Tablelinks not part of transaction”。我记录了事务对象以检查它,并查看了该错误可能来自何处的源代码,它看起来像是 storeNames。我的数据库结构如下:

但是当我查看 storeNames 时,我只看到“节点”。我正在使用 Dexie 版本 2 beta 10 - 这很可能是问题所在,但我不确定,因为这是我的第一个 indexeddb 项目,并且向我推荐了 dexie。我选择了测试版,因为所有指南都使用了 2.x 的语法。

任何见解将不胜感激!

-- 短暂的延迟 -- 我刚刚在最新的 1.x 版本中再次尝试过,现在出现了这个错误:“未处理的拒绝:错误:无法在 'IDBTransaction' 上执行 'objectStore':找不到指定的对象存储。 "

那么无论是发布版还是测试版都不能删除钩子?或者更有可能,我只是做错了什么吗?我遵循了这一点,如您所见,我的钩子代码基于那里提供的示例。我尝试在商店之后和公开承诺内设置挂钩,但似乎没有什么对我有用。我宁愿进行一种级联删除,也不愿多次扫描整个数据库以查找最终未连接到根的节点,哈哈。

--edit:事实证明,我可以通过使用事务块并在将两个表都包含在事务中之后从那里执行删除来解决这个问题。问题是我在这里编写的钩子代码中使用的事务不知道除了事务中涉及的表之外的任何表。