我的代码是这样的:
Template.doodad.onRendered(function(){
var day1 = moment().format("ddd");
var day2 = moment().add(1,'d').format("ddd");
var day3 = moment().add(2,'d').format("ddd");
});
目前我通过jQuery这样调用它(在相同的onRendered函数下):
$('#day1').text(day1);
$('#day2').text(day2);
$('#day3').text(day3);
我的HTML:
<template name="doodad">
<div id="day1"></div>
<div id="day2"></div>
<div id="day3"></div>
</template>
当然这不是被动的,我想确保信息随着数据的变化而更新。我一直在寻找可以实现这一目标的工具,虽然chronos有一些效果,但文档并未说明如何添加以下日期(明天,后一天等)。
我最后输入了类似return Chronos.currentTime().add(1,'d');
的内容,但这些内容无效。
在模板上添加新日期的理想方法是什么?
答案 0 :(得分:1)
在Meteor中,您通常不应该使用jQuery来设置页面内容。如果你想让它变得反应,那将会更复杂。而是使用自动反应的模板助手。
<template name="doodad">
<div>{{day1}}</div>
<div>{{day2}}</div>
<div>{{day3}}</div>
</template>
Template.doodad.helpers({
day1() {
return Chronos.liveMoment().format("ddd")
},
day2() {
return Chronos.liveMoment().add(1, "d").format("ddd")
},
/* etc */
});
请注意使用Chronos.liveMoment
,类似于currentTime
,但会返回一个时刻而非一个日期。