2016-04-14 64 views
0

嘿家伙我#m与meteor.js中的模板尝试,但我怎么能在给定时间后重新加载它们? ,例如我想要一个名为“时间”的模板,必须重新加载每一秒以显示当前时间,还需要每分钟重新加载一个模板“日期”,因为每分钟日期可以更改,或者日历至极必须每5分钟左右重新载入一次,以保持准确。Meteor.js中的简单时钟或如何重新加载模板?

我当前的代码看起来像这样:

<body> 
    <!-- TOP --> 
    <div class="top left">{{> time }}</div> 
    <div class="top mid"></div> 
    <div class="top right">{{> date }}</div> 

</body> 

<template name="time"> 
<div>{{ clock }}</div> 
</template> 

<template name="date"> 
<div>{{ date }}</div> 
</template> 

的JS:

if (Meteor.isClient) { 


    Template.time.helpers({ 
     clock: function() { 
      var currentTime = new Date(); 
      var currentHours = currentTime.getHours(); 
      var currentMinutes = currentTime.getMinutes(); 
      var currentSeconds = currentTime.getSeconds(); 
      currentHours = (currentHours < 10 ? "0" : "") + currentHours; 
      currentMinutes = (currentMinutes < 10 ? "0" : "") + currentMinutes; 
      currentSeconds = (currentSeconds < 10 ? "0" : "") + currentSeconds; 
      return currentHours + ":" + currentMinutes + ":" + currentSeconds; 
     } 

    }); 

    Tempate.date.helpers({ 
     date: function() { 
      var month = ["Januar", "Februar", "März", "April", "Mai", "Juni", "July", "August", "September", "October", "November", "Dezember"]; 
      var d = date.getDate(); 
      var m = date.getMonth(); 
      var y = date.getFullYear(); 
      return d + " " + month[m] + " " + y; 
     } 
    }); 

} 

请帮助我提高我的知识!

-Tim4497

+0

您可能会发现[remcoder:chronos](https://atmospherejs.com/remcoder/chronos)包有帮助。 –

回答

4

重新加载模板的最简单的方式是提供和更改的反应性数据源。在你的情况下,这可能是时钟值。

var clock = new ReactiveVar(new Date()); 

Template.time.onCreated(function() { 
    Meteor.setInterval(function() { 
    clock.set(new Date()); 
    }, 1000); 
}); 

Template.time.helpers({ 
    clock: function() { 
    var currentTime = clock.get(); 
    ... 
    }, 
}); 
+0

谢谢,我不知道如何间隔和这onCreate! – Tim4497

相关问题