2017-10-19 2 views
0

Ich implementiere Dexie 2.0 in einem Angular2-Projekt.Dexie - Überprüfen Sie, ob ein Datensatz existiert und initialisieren Sie ihn, wenn er nicht vorhanden ist

Ich habe eine einfache Tabelle, die nur einen Datensatz für die Benennung von Bestellungen enthalten sollte.

Was ich tun muss, ist in IndexedDb einzuchecken, wenn die Tabelle den Datensatz hat und wenn nicht, initialisieren Sie es ... Sehr einfach.

Dies ist der Code:

this.OrderCounter.toArray().then(function (arr) { 
     if (arr.length == 1) { 
      console.log('Do nothing'); 
     } 
     else { 
      console.log('Initialize Counter');   
      this.OrderCounter.add(1);   
     } 
     }); 

In diesem Moment die Tabelle leer ist, und wenn ich das Skript ausführen ich auf dem Zeilenbefehl, der den Datensatz initialisieren „diese nicht definiert ist“ ...

Was muss ich ändern?

Dank

Antwort

1

Es ist die Natur von this in Javascript zu unterstützen, die das Problem ist. Versuchen Sie, function (arr) { ... } durch eine Pfeilfunktion (arr) => { ... } zu ersetzen, und Ihr this Zeiger bleibt bei Ihrer Klasseninstanz.

+0

Dank David ... Sie sind wertvoll wie immer ... Dexie Komponente funktioniert wirklich gut in meinem ersten Projekt, das lokalen Speicher implementiert ... – DarioN1

Verwandte Themen