3

わかりましたので、最初にサインアップした後にアプリが起動したときに、ユーザーを別のページにリダイレクトしたいと思います。

私のサーバーコードにはこれがあります

Accounts.onCreateUser(function(options, user) {
Hooks.onCreateUser = function () {
Meteor.Router.to('/newUser');
   }
});

しかし、ユーザーがすでに複数回アクセスしている場合は別のページにリダイレクトしたいので、これをクライアントコードに入れています。これは常にクライアントにデフォルト設定されています。何が間違っていますか?

Hooks.onLoggedIn = function () {
Meteor.Router.to('/new');
}
4

2 に答える 2

2

署名済みのユーザーをリダイレクトする場合は、リダイレクトされたかどうかを示すフラグをユーザー オブジェクト内に設定するだけです。

Hooks.onLoggedIn = function (){
  if(!Meteor.user()) return;
  if(!Meteor.user().returning) {
    Meteor.users.update(Meteor.userId(), {$set: {returning: true}});
    Meteor.Router.to('/new');
  }
}

returningユーザーコレクションのフィールドへの公開と購読を忘れずに!


すべての訪問者に同様の機能が必要な場合は、Cookie を使用してください。

Hooks.onLoggedIn = function (){
  if(!Cookie.get('returning')) {
    Cookie.set('returning', true);
    Meteor.Router.to('/new');
  }
}

そのための便利なパッケージは次のとおりです: https://atmosphere.meteor.com/package/cookies

于 2013-07-24T06:54:59.967 に答える