每次Meteor.user更改时,如何避免使用Meteor.user()内部的Meteor自动运行

时间:2017-01-13 17:36:23

标签: meteor angular-meteor

我很困惑,因为我在Meteor-Angular中有一个自动运行,我需要每次变量this.getReactively('perPage')更改,但在我需要验证Meteor.user()是否存在之前,所以我需要把它放在功能自动运行中,但我的问题是这个自动运行每次运行时不仅仅是当this.getReactively('perPage')改变时,而是Meteor。用户更改,我不知道是否有办法避免这种情况,也许比较以前的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));

1 个答案:

答案 0 :(得分:2)

请改用Meteor.userId()。只有在用户登录或注销时才会更改。您可能更频繁地更改用户对象。

您也不需要将Meteor.user().notification_bell传递给您的订阅。您可以直接访问出版物内的服务器上的内容。这也会更安全(你永远不应该将任何数据传递给那里已有的服务器)。