1

在最新版本的 Meteor 中,添加了变换功能。

示例用法:

var myCollection = new Meteor.Collection("mycollection",
{
    transform: function(doc){ 
        doc["newProperty"] = "test"; return doc; 
    })
}

有没有办法重新计算这些转换?

我在 DOM 中使用时间人性化功能(MomentJS 人性化),这实际上是对集合进行的唯一转换,因此每 10 秒重新应用一次(大约 15 个条目)应该不多性能受到打击。

4

1 回答 1

1

一种方法可能是将您的集合结果放在依赖项中

客户端JS:

var times = [];
var timesDeps = new Deps.Dependency;

var getTimes = function () {
   Deps.depend(timesDeps);
   return myCollection.find();  //Your Query
};


Template.home.times = function() {
    return getTimes();
}

Meteor.setInterval(function() {
    timesDeps.changed();
}, 10000) //Recalculate ever 10000 ms

所以正在做的是使用 getTimes() 调用您的集合,并且当您调用timesDeps.changed()它的反应式上下文时,它会失效并刷新数据,从而再次调用转换。

于 2013-03-21T12:55:18.170 回答