2016-04-14 3 views
0

meteor.jsのTemplatesで試してみましたが、一定時間後にどのように再ロードできますか?私は現在の時間を表示するために毎秒リロードしなければならない "時間"と呼ばれるテンプレートを持っていたいと思います。また、毎分リロードするテンプレート "日付"もあります。 5分ごとに.icsをリロードしなければならず、常に正確です。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