2017-02-27 12 views
0

私はDexie + VueJsを使用していますが、レコードのリストを持つテーブルを印刷しています。従属レコードをカウントするための追加フィールドも1つありますが、きちんとした方法。DexieからVueに同期してデータを渡すには?

私は何をしたいのですが次のとおりです。

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

dexieで申し訳ありませんが慣れていないのに役立ちます願ってい

は、 'db.citiesは...'約束を返すのですか? – Austio

+0

'computed'プロパティの代わりに' methods'を使ってみてください。 – Saurabh

+0

@Austioはい、プロミスを返します。 – robregonm

答えて

1

あなたはFIRST dexie非同期操作を行うとTHEN(dexieによって返されたデータをVUEコンポーネントを初期化する必要が非同期(async)ほとんどすべてではないdexie操作が実行されているので)。

vueコンポーネントをデータなしで初期化しようとすると、ユースケースに応じてcreated/onがマウントされ、dbからデータを要求して状態を更新できます。私はそれが

+0

このアプローチの問題は、VueテンプレートがDexieからのアップデートをレンダリングしないことです – robregonm

関連する問題