【发布时间】:2018-12-17 15:38:39
【问题描述】:
我想将表中的所有项目提取到集合中,但收到表名称为 undefined 的错误消息。这是我的商店:
db.version(1).stores({
users: '++id,',
orgs: '++id,',
applications: '++id'
})
然后这是我的电话:
db.orgs.toCollection().count(function (count) {
console.log(count)
})
它给出了以下错误:
TypeError: Cannot read property 'toCollection' of undefined
但是当我在调用时停止调试器并输入db.tables 果然:
1:Table {name: "orgs", schema: TableSchema, _tx: undefined, …}
_tx:undefined
hook:function rv(eventName, subscriber) { … }
name:"orgs"
感谢任何帮助 - 谢谢。
更新
我注意到,当我在初始创建时为数据库播种时,我可以提取数据。所以我将该代码复制到我的模板中。但是它仍然失败,所以我必须缺少一些简单的东西,这是代码:
import Dexie from '@/dexie.es.js'
export default {
name: 'ListOrgs',
data: () => {
return {
orgs: []
}
},
methods: {
populateOrgs: async function () {
let db = await new Dexie('myDatabase').open()
db.orgs.toCollection().count(function (count) {
console.log(count)
})
}
},
mounted () {
this.populateOrgs()
}
}
【问题讨论】:
-
为了补充这一点,我尝试创建一个工厂来创建样板文件并打开数据库。在最初创建数据库并播种数据时在此文件中,我可以调用它并且它可以工作。但是,即使直接使用 Dexie 也会抛出同样的错误。