如何对Meteor中用户配置文件中的两个日期对象做出反应

时间:2015-11-24 19:50:39

标签: javascript meteor reactive-programming meteor-tracker

在我的应用中,用户的个人资料中有一个开始和结束属性(两个日期对象,相隔几个小时)。我想让我的应用程序对这些值做出反应 - 例如,如果当前时间介于两次之间,或者在开始时间的15分钟内,则显示一些内容。我有一种感觉,我想要使用Tracker.autorun的Meteor,我不知道如何使用它,因为你没有手动改变时间,它总是在变化。

类似的东西:

timeDif : function() {
    Tracker.autorun(function() {
        var m1 = moment();
        var m2 = moment(Meteor.user().profile.time);
        var difMin = m1.diff(m2, 'minutes');
        if(difMin > 10)  {foo;}
        else {bar;}
    })

}

1 个答案:

答案 0 :(得分:1)

正如您所发现的那样,这不起作用,因为Date个对象不是被动的。看看像chronos pacakge这样的东西,它为反应日期提供了各种帮助。根据文档,看起来像这样的东西可以工作:

timeDiff : function() {
  var m1 = Chronos.liveMoment();
  var m2 = moment(Meteor.user().profile.time);
  var minutes = m1.diff(m2, 'minutes');
  ...
}

我假设timeDiff是帮手,因此您不需要autorun。如果没有,请告诉我,我会提出一些其他想法。