2017-10-19 1 views
0

J'implémente Dexie 2.0 dans un projet Angular2.Dexie - Vérifie si un enregistrement existe et l'initialise s'il n'est pas présent

J'ai une table simple qui ne devrait contenir qu'une seule utilisation d'enregistrement pour nommer les commandes.

Ce que je dois faire est de vérifier IndexedDb si la table a l'enregistrement et sinon, l'initialiser ... Très simple.

Voici le code:

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

En ce moment, la table est vide et si je lance le script je reçois « ce n'est pas défini » sur la commande de la ligne qui initialisent le record ...

Que dois-je changer?

Merci à l'appui

Répondre

1

C'est la nature de this en javascript qui est le problème. Essayez de remplacer function (arr) { ... } par une fonction de flèche (arr) => { ... } et votre pointeur this s'en tiendra à votre instance de classe.

+0

Merci David ... Vous êtes précieux comme toujours ... Le composant Dexie fonctionne très bien dans mon premier projet qui implémente le stockage local ... – DarioN1