【问题标题】:Meteor Update Template Element based on Interval基于间隔的流星更新模板元素
【发布时间】:2014-04-10 10:05:39
【问题描述】:

我是 Meteor 的新手。基本上,我想在某种时间间隔内更新从集合中获取的元素(例如 {{title}});就像每 20 秒从集合中获取下一个标题。

在 ajax 中,我可以轻松地构造一个带有计时器的函数来从服务器端提取数据。这在 Meteor 框架中如何实现?

我知道集合可以像这样声明/初始化

Template.mytemplate.title = function {
  return Titles.find();
}

但我不打算使用#each 循环显示所有这些。我打算在特定的时间间隔内一一展示。

请指教。

【问题讨论】:

    标签: node.js mongodb meteor


    【解决方案1】:

    您可以简单地更新您想要在某个时间间隔内显示的数据。例如:

    Template.myTemplate.title = function() {
      return Titles.find({}, {
        limit: 1,
        skip: Session.get('offset'),
      }).fetch();
    };
    
    Template.myTemplate.created = function() {
      Session.set('offset', 0);
      setInterval(function() {
        Session.set('offset', Session.get('offset') + 1);
      }, 20000);
    };
    

    【讨论】:

    • 我很难理解 Titles.find() 中的参数...我可以看到偏移值是从会话中获取的,但是当我们更新会话时,它会自动刷新偏移量吗?
    • 我设法每隔几秒钟刷新一次模板,但我无法移动到集合中的下一个项目。在我更新created 事件中的偏移变量后,标题仍然显示没有 1。
    • @KubaWyrobek 对我没用。我阅读了有关 collection.find() 的文档,偏移量是选项之一吗?
    • @HubertOG @KubaWyrobek 我找到了!应该使用skip 而不是offset。休伯特,请更正它,以便我将其标记为答案。
    猜你喜欢
    • 2016-02-26
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多