我正在Angular2项目中实现Dexie 2.0。
我有一个简单的表,只能包含一个用于命令命名的记录。
我要做的是检查IndexedDb如果表有记录,如果没有,请初始化它......非常简单。
这是代码:
this.OrderCounter.toArray().then(function (arr) {
if (arr.length == 1) {
console.log('Do nothing');
}
else {
console.log('Initialize Counter');
this.OrderCounter.add(1);
}
});
此时表是空的,如果我运行脚本,我会在初始化记录的行命令上得到“这是未定义的”...
我需要改变什么?
感谢支持
答案 0 :(得分:1)
这是javascript中this
的本质问题。尝试使用箭头函数function (arr) { ... }
替换(arr) => { ... }
,并且this
指针将粘贴到您的类实例。
答案 1 :(得分:1)
如果您使用的是旧版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);
}
});