Dexie - 检查记录是否存在,如果不存在则初始化它
Dexie - Check if a record exists and initialize it if not present
我正在 Angular2 项目中实施 Dexie 2.0。
我有一个简单的 table,它应该只包含一个用于订单命名的记录。
我要做的是在 table 中检查 IndexedDb 是否有记录,如果没有,则初始化它...非常简单。
这是代码:
this.OrderCounter.toArray().then(function (arr) {
if (arr.length == 1) {
console.log('Do nothing');
}
else {
console.log('Initialize Counter');
this.OrderCounter.add(1);
}
});
此刻 table 是空的,如果我 运行 脚本,我会在初始化记录的行命令上得到 "this is undefined"...
我需要更改什么?
感谢支持
问题出在 javascript 中 this
的性质。尝试用箭头函数 (arr) => { ... }
替换 function (arr) { ... }
并且你的 this
指针将粘在你的 class 实例上。
如果您使用的是 JavaScript 的旧版本,那么您可能无法使用箭头功能。解决此问题的较旧方法是在函数调用之前将 "this" 放入变量中。
var self = this;
this.OrderCounter.toArray().then(function (arr) {
if (arr.length == 1) {
console.log('Do nothing');
}
else {
console.log('Initialize Counter');
self.OrderCounter.add(1);
}
});
我正在 Angular2 项目中实施 Dexie 2.0。
我有一个简单的 table,它应该只包含一个用于订单命名的记录。
我要做的是在 table 中检查 IndexedDb 是否有记录,如果没有,则初始化它...非常简单。
这是代码:
this.OrderCounter.toArray().then(function (arr) {
if (arr.length == 1) {
console.log('Do nothing');
}
else {
console.log('Initialize Counter');
this.OrderCounter.add(1);
}
});
此刻 table 是空的,如果我 运行 脚本,我会在初始化记录的行命令上得到 "this is undefined"...
我需要更改什么?
感谢支持
问题出在 javascript 中 this
的性质。尝试用箭头函数 (arr) => { ... }
替换 function (arr) { ... }
并且你的 this
指针将粘在你的 class 实例上。
如果您使用的是 JavaScript 的旧版本,那么您可能无法使用箭头功能。解决此问题的较旧方法是在函数调用之前将 "this" 放入变量中。
var self = this;
this.OrderCounter.toArray().then(function (arr) {
if (arr.length == 1) {
console.log('Do nothing');
}
else {
console.log('Initialize Counter');
self.OrderCounter.add(1);
}
});