8

私がメテオで観察してきたより混乱している側面の1つは、セッションがすべてリフレッシュされることです。それは永続的なストアではないので、どこにuseridのようなものを置くのでしょうか、あるいは人々が私のアプリケーションの状態マシンにいるのでしょうか?流星の永続セッション

これらのシナリオのパターンは何ですか?

答えて

3

まず、私は流星built in Authを使用してユーザーIDを格納しています。彼らはデフォルトではローカルストレージを使用していますが、AFAIKには簡単に取り込めません。

しかし、リフレッシュしても何かを残しておきたい場合は、mongoに保存するか、URLを使って「状態マシン」にあるかを示す必要があります。ブートストラップルーター(たとえば)を使用してpushStateを使用してURLを変更することができます。

9

実際には、set()が呼び出されたときにAmplifyのローカルストレージに値を格納するSessionの「サブクラス」を作成することができます。 Sessionのすべての反応特性を自動的に継承します。ここでは、コードがある、それは私の仕事:

SessionAmplify = _.extend({}, Session, { 
    keys: _.object(_.map(amplify.store(), function(value, key) { 
    return [key, JSON.stringify(value)] 
    })), 
    set: function (key, value) { 
    Session.set.apply(this, arguments); 
    amplify.store(key, value); 
    }, 
}); 

ちょうどSessionAmplify.set /取得の呼び出しで、すべてのSession.set /取得の呼び出しを交換してください。 set()が呼び出されると、親Sessionメソッドが呼び出され、amplify.store()も呼び出されます。 "サブクラス"が最初に作成されると、get()ですぐに取り出すことができるように、キーの中に増幅のストア内にあるすべてのものをロードします。 https://github.com/sebastienbarre/meteor-leaderboard

+1

ニース:

現在地リーダーボードの例の作業バリエーションをテストすることができます。私は何かのためにこれを見つけましたが、私は完全にこのアイデアを使用するつもりです。ありがとう、セバスチャン! –

+0

+1、これは美しく機能します – danii