Meteor 流星JS&;火焰-装载时仅显示一次

Meteor 流星JS&;火焰-装载时仅显示一次,meteor,meteor-blaze,Meteor,Meteor Blaze,我有一个部分,显示的通知模式,同意该网站的条款和服务,我只想显示一次(一旦他们点击我同意它消失) 用Meteor有没有办法做到这一点?有很多方法 这不是流星特有的问题 Template.notifications.events({ 'click #close-modal': function(e, t) { $('#modal').hide(); } }) 假设您希望在数据库中存储一个布尔值,表示用户已接受这些术语(因此他们不会再被询问),您可以在用户对象的某个位置(例如,在用

我有一个部分,显示的通知模式,同意该网站的条款和服务,我只想显示一次(一旦他们点击我同意它消失)


用Meteor有没有办法做到这一点?

有很多方法

这不是流星特有的问题

Template.notifications.events({
  'click #close-modal': function(e, t) {
    $('#modal').hide();
  }
})

假设您希望在数据库中存储一个布尔值,表示用户已接受这些术语(因此他们不会再被询问),您可以在用户对象的某个位置(例如,在用户的配置文件中)添加一个名为
hasaccessedterms
的字段。一旦您这样做,您就可以这样编写模板:


{{{#如果术语可见}
(将术语部分放在此处)
{{/if}
其中,
areTermsVisible
如下所示:

Template.myTemplate.helpers({
areTermsVisible:函数(){
var user=Meteor.user();
返回user&&user.profile&&!user.profile.hasAcceptedTerms;
}
});
记录验收的代码如下所示:

Template.myTemplate.events({
'click.accept terms':函数(){
var userId=Meteor.userId();
var修饰符={$set:{'profile.hasAcceptedTerms':true};
Meteor.users.update(userId,修饰符);
}
});

处理Cookie策略通知的最佳方法是使用Cookie,这也许并不奇怪。这个问题不是流星特有的,但至少有两个好的大气软件包可以帮助您解决这个问题:

你需要做的基本上是,设置cookie

Cookie.set('userHasAcceptedPolicy', true, { year: 1 });
只要用户单击“接受”按钮,就可以使用您喜欢的任何参数。然后,在决定是否需要显示策略通知之前,您可以使用:

Cookies.get('userHasAcceptedPolicy');
看看是否有必要这样做。因此,它与@DavidWeldon建议的解决方案几乎相同,但它不需要引用
Meteor.user()
对象,因此用户不需要拥有帐户即可接受策略


请注意,至少在
mrt:cookies
-
cookies.get
是一个,这在呈现模板时非常有用。

您想将其与用户帐户系统结合起来,还是只是与浏览器更相关,例如“我接受cookies策略”之类。cookies策略。用户不应登录。