私はMeteor + AngularJSフレームワークを使用しています。ルーティングの前に流星のローカル収集が確実に行われるようにする方法
(ground:dbを使用して)オフラインコレクションに格納されているデータに基づいてルーティングを制御したいが、オフラインデータはルーティングする前に準備ができているとは限らない。
コレクションがオフラインでない場合、調査に値する "waitOn"や "subscriptionReady"のように見えるかもしれませんが、オフラインコレクションには購読や出版物は必要ありません。アプリはブートストラップされていますか?
キーソース断片:。ほとんどの場合
1.route.js
import { LastLogin } from '../lib/collections';
angular.module('app')
.config(function ($stateProvider, $urlRouterProvider) {
console.log(LastLogin.find().count());
if(LastLogin.find().count() > 0){
$urlRouterProvider.otherwise('main/homepage');
}else{
$urlRouterProvider.otherwise('login');
}
});
2.collections.js
export const LastLogin = new Ground.Collection('lastLogin', {connection: null});
、LastLogin.findは()(カウント)が0であることはめったにありませんが、実際にはlastLoginコレクションにいくつかのレコードがあり、ログインページが表示された後に正しく表示されます。
私はTracker.autorun
Tracker.autorun(function(){
if(LastLogin.find().count() > 0){
$urlRouterProvider.otherwise('main/home');
}else{
$urlRouterProvider.otherwise('login');
}
});
しかし、誰の助けによって、次のコードを囲む試してみました。
最終的な目的は、最後のユーザーがオフライン状態でも自動的にログオンすることです。より良い解決策はありますか?