我正在使用Angular2使用IndexedDB。 为此,我遵循以下 github 链接。 https://github.com/gilf/angular2-indexeddb
我正在创建像这样的数据库。
ngOnInit(){
db.createStore(1, (evt) => {
let objectStore =
evt.currentTarget.result.createObjectStore(
'Userdetails', { keyPath: "id", autoIncrement: true });
objectStore.createIndex("name", "name", { unique: false });
objectStore.createIndex("email", "email", { unique: true });
});
}
但是当我试图将值插入 Userdetails 表时,这不起作用。插入我使用下面的代码。
db.add('Userdetails', { name: 'name', email: 'email' }).then(() => {
// Do something after the value was added
}, (error) => {
console.log(error);
});
任何人都可以告诉我我在哪里做错了。我对这个 angular2-indexeddb 非常新。请帮助我。
答案 0 :(得分:0)
createStore
,现在openDatabase
是异步方法。所以,下面会有效。
ngOnInit(): void {
let db: AngularIndexedDB = new AngularIndexedDB('myDb', 1);
db.openDatabase(1, (evt) => {
let objectStore = evt.currentTarget.result.createObjectStore(
'people', { keyPath: 'id', autoIncrement: true });
objectStore.createIndex('name', 'name', { unique: false });
objectStore.createIndex('email', 'email', { unique: true });
}).then(function() {
db.add('people', { name: 'nameq', email: 'email' }).then(() => {
// Do something after the value was added
}, (error) => {
console.log(error);
});
});
db.openDatabase(1).then(function() {
db.getAll('people').then((person) => {
console.log(person);
}, (error) => {
console.log(error);
});
});
}