gpt4 book ai didi

lokijs - 无法使用 lokiJs 加载数据库

转载 作者:行者123 更新时间:2023-12-02 21:13:49 24 4
gpt4 key购买 nike

我尝试创建一个数据库,并将集合添加到该数据库并将更改保存到 IndexedDB。

下面是我的代码

  1. 两个 Controller SaveController 和 LoadController。

myApp.controller('SaveController', ['$scope', 'Loki', function ($scope, Loki) {

// SAVE : will save App/Key/Val as 'finance'/'test'/{serializedDb}
// if appContect ('finance' in this example) is omitted, 'loki' will be used
var idbAdapter = new LokiIndexedAdapter('finance');

var db = new loki('ProjectDb', { adapter: idbAdapter });

var coll = db.addCollection('SampleCollection');
coll.insert({ SampleId: 'Sample text.....' });

db.saveDatabase(); // could pass callback if needed for async complete

}]);

然后在我的 LoadController 中我使用

myApp.controller('LoadController', ['$scope', 'Loki', function ($scope, Loki) {

var idbAdapter = new LokiIndexedAdapter('finance');

var db = new loki('ProjectDb', { adapter: idbAdapter, autoload: true });
db.loadDatabase({}, function (result) {
console.log(result);
});

alert(db.getCollection("SampleCollection"));

}]);

当我警告“alert(db.getCollection("SampleCollection"));”时,我得到一个空值。它永远不会进入“loadDatabase”方法的回调。

我有什么遗漏的吗?

浏览器中的IndexedDB

IndexedDB

这里是页面 html

Page HTML

lokijs script controller

编辑默认本地存储实现

我使用loki js的默认实现,并且我尝试加载离线数据库,即使数据库存在,每次结果都显示为空

var offlineDb = new loki('DbOfflineNew');
offlineDb.loadDatabase({},function (result) {
console.log(result);
if (result == null) {
alert('loading for first time..');
}
else {
alert('existing load..');
}
});

每次触发“第一次加载..”警报时..我在这里缺少什么吗..?

最佳答案

基本上所有逻辑都需要位于 loadDatabase 回调中。如果您在加载之前尝试 console.log 集合,那么它将为 null。很多人都掉进了这个陷阱。

换句话说:

myApp.controller('LoadController', ['$scope', 'Loki', function ($scope, Loki) {

var idbAdapter = new LokiIndexedAdapter('finance');

var db = new loki('ProjectDb', { adapter: idbAdapter, autoload: true });
db.loadDatabase({}, function (result) {
console.log(result);
// put your log call here.
alert(db.getCollection("SampleCollection"));
});
}]);

希望这有帮助。

关于lokijs - 无法使用 lokiJs 加载数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31859889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com