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().count() は 0 です。1 になることはめったにありません。実際、lastLogin コレクションには、ログイン ページが表示された後に正しく印刷できるレコードがいくつかあります。自分。
以下のコードを Tracker.autorun で囲んでみました
Tracker.autorun(function(){
if(LastLogin.find().count() > 0){
$urlRouterProvider.otherwise('main/home');
}else{
$urlRouterProvider.otherwise('login');
}
});
しかし、助けはありません。
私の最終的な目的は、オフライン状態であっても、最後のユーザーを自動ログオンさせることです。より良い解決策はありますか?