2017-02-27 4 views
0

Tatsache ist, dass ich Dexie + VueJs benutze, und ich drucke eine Tabelle mit der Liste der Datensätze und ein zusätzliches Feld zum Zählen abhängiger Datensätze, aber ich bekomme nicht, wie man es in einem tut gepflegte Art und Weise.Wie übermittele ich Daten von Dexie zu Vue?

Was möchte ich tun ist:

var vueElement = new Vue({ 
el: '#myElement', 
data: { 
    states: [] 
}, 
computed: { 
    cities: function (s) { 
     return db.cities.where('stateId').equals(s.id).count(); // How can I do this? 
    } 
} 
}); 
// Initialize states in vue object 
db.states.toArray().then(function (arr) { 
    vueElement.states = arr; 
}); 
+0

Es hilft mit Dexie nicht vertraut, wird die 'db.cities ...' ein Versprechen zurückzukehren? – Austio

+0

Verwenden Sie 'Methoden' anstelle von' berechneter' Eigenschaft. – Saurabh

+0

@Austio Ja, es gibt ein Versprechen. – robregonm

Antwort

1

Da die meisten, wenn nicht alle Dexie Operationen ausgeführt werden async müssen Sie zuerst Dexie async Operationen ausführen und dann (vue Komponente mit den Daten, die von Dexie zurück initialisieren).

Oder Sie können versuchen, die Vue-Komponente ohne Daten zu initialisieren und je nach Anwendungsfall erstellt/on eingehängt, Daten von db anfordern und Ihren Status aktualisieren.

Ich hoffe, es

+0

Das Problem bei diesem Ansatz besteht darin, dass die Vue-Vorlage die von Dexie kommenden Updates nicht rendert – robregonm

Verwandte Themen