2017-01-13 4 views
0

私はMeteor-Angularで自動実行しているので混乱しています。毎回変数this.getReactively( 'perPage' )が変更されますが、Meteor.user()が存在するかどうかを検証する前に、funtionの自動実行の中に入れておく必要がありますが、この自動実行はthis.getReactively( 'perPage')流星が変わったときに変わる。ユーザーの変更、私はそれを避けるための方法があるかどうか、多分Meteor.userの以前の値を比較するか分からない、私は知らない。誰かが私を助けることができましたか?ありがとうMeteor.user()をMeteor.user()で実行してMeteor.user()を実行する際の回避方法Meteor.userの変更

Tracker.autorun(function() { 
     if(this.getReactively('perPage')){ 
      if(Meteor.user()){ 
      console.log(this.getReactively('perPage')); 
      Meteor.subscribe('notifications_bell',Meteor.user().notifications_bell,this.getReactively('perPage')); 
      } 
     } 
    }.bind(this)); 
+0

なぜMeteor.user()の変更で機能を再実行したくないのですか?サブスクリプションで 'Meteor.user()。notifications_bell'を使用しているのがわかりますので、サブスクリプションが変更されたときにサブスクリプションを再実行する必要があります。 – MatiK

答えて

2

代わりにMeteor.userId()を使用してください。これは、ユーザーがログインまたはログアウトしたときにのみ変更されます。あなたはおそらくより頻繁にユーザーオブジェクトを変更しています。

また、サブスクリプションにMeteor.user().notification_bellを渡す必要はありません。パブリケーション内のサーバー上で直接アクセスすることができます。それはまた、より安全になります(すでにそこにあるサーバーにデータを渡すべきではありません)。

関連する問題