流星反应日期?

时间:2016-05-13 06:04:02

标签: meteor

我的代码是这样的:

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');的内容,但这些内容无效。

在模板上添加新日期的理想方法是什么?

1 个答案:

答案 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,但会返回一个时刻而非一个日期。