2017-06-07 4 views
0

Ich verwende IndexedDB mit Angular2. Dazu folge ich dem untenstehenden GitHub Link. https://github.com/gilf/angular2-indexeddbFehler beim Hinzufügen von Wert zu indexedDB mit angular2

Ich erstelle db so und addieren Wert so.

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: '[email protected]' }).then(() => { 
    // Do something after the value was added 
    console.log('fields added'); 
}, (error) => { 
    console.log('error is'+error); 
}); 

} 

Aber in der Konsole bekomme ich Fehler wie folgt. Sie müssen die createStore-Funktion verwenden, um eine Datenbank zu erstellen, bevor Sie sie abfragen!

Kann mir bitte jemand sagen, wo genau ich falsch mache. Ich bin sehr neu zu diesem angular2-indexeddb.Bitte helfen Sie mir.

Antwort

2

Ich denke, Ihr Code für db.add wird zu früh gefeuert, wenn ich den Code richtig lese.

Wenn Sie es ändern, um es funktionieren sollte

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: '[email protected]' }).then(() => { 
     // Do something after the value was added 
     console.log('fields added'); 
    }, (error) => { 
     console.log('error is'+error); 
    }); 
}); 
+1

Vielen Dank @Dick van den Brink. Es hat für mich funktioniert. Ich habe einen Fehler gemacht. – ananya

Verwandte Themen