[EDIT]地上DB V2に更新され、作られた、より読みやすいコード流星反応する:突然空GroundDBを
私は私の流星が反応しコルドバアプリケーションはまた、オフラインで実行することができ、私のプロジェクトでGroundDBを使用しようとしています。メインコンテナには次のコードがあります。
let fullyLoaded = new ReactiveVar(false);
let subscribed = false;
let subscribedOnce = false;
let checking = false;
export default createContainer(() => {
if(Meteor.status().connected && !subscribedOnce && !subscribed){
subscribed = true;
console.log("subscribing");
Meteor.subscribe("localization",
()=> {
localizationGrounded.keep(Localization.findNonGrounded());
console.log("everything has been loaded once.");
console.log("Localization count after subscription: " + Localization.find().fetch().length);
fullyLoaded.set(true);
subscribed = false;
subscribedOnce = true;
}
);
}
if(fullyLoaded.get()){
console.log("Localization Count: " + Localization.find().fetch().length)
}
return {
isLoggedIn: !!Meteor.userId(),
isLoading: !fullyLoaded.get() || subscribed,
};
}, Main);
このコードは、まだロードされていない場合は「ローカリゼーション」に登録する予定です。ローカリゼーションコレクションは、次のように(、検索を実施され)、findOne()メソッドは接地DB用)(見つける呼び出すために上書きされている:
export const Localization = new Mongo.Collection('localization');
if(Meteor.isClient){
export let localizationGrounded = new Ground.Collection('localization', {
cleanupLocalData: false
});
//rename find() to findNonGrounded
Localization.findNonGrounded = Localization.find;
localizationGrounded.observeSource(Localization.findNonGrounded());
Localization.find = function(...args){
console.log("finding from ground db");
return localizationGrounded.find(...args);
};
Localization.findOne = function(...args){
console.log("finding one from ground db");
return localizationGrounded.findOne(...args);
}
}
これはしかし、次のような出力生成:
subscribing
everything has been loaded once
finding from ground db
Localization count after subscription: 28
finding from ground db
Localization count: 28
を
うまく見えますか?残念ながら、その直後にcreateContainer()関数が呼び出され、結果として
...
Localization count: 28
//Lots of "finding one from ground db" indicating the page is being localized correctly
finding from ground db
Localization Count: 0
//more "finding one from ground db", this time returning undefined
この問題を解決するのを手伝ってください。事前に おかげ
Taxel