使用angular2向indexedDB添加值时获取错误

时间:2017-06-07 07:26:45

标签: angular indexeddb

我正在使用Angular2使用IndexedDB。为此,我遵循以下github链接。 https://github.com/gilf/angular2-indexeddb

我正在创建这样的db并添加这样的值。

    ngOnInit(){

        let db = new AngularIndexedDB('mydb', 1);
        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 });

        });


db.add('Userdetails', { name: 'name', email: 'name@mail.com' }).then(() => {
    // Do something after the value was added
     console.log('fields added');
}, (error) => {
    console.log('error is'+error);
});

}

但是在控制台中我得到这样的错误。在查询之前,你需要使用createStore函数来创建数据库!

任何人都可以告诉我我在哪里做错了。我对这个angular2-indexeddb很新。请帮助我。

1 个答案:

答案 0 :(得分:2)

我认为如果我正确阅读代码,您db.add的代码会被提前解雇。

如果你改变它应该工作

 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 });

}).then(() => {
    db.add('Userdetails', { name: 'name', email: 'name@mail.com' }).then(() => {
        // Do something after the value was added
        console.log('fields added');
    }, (error) => {
        console.log('error is'+error);
    });
});