我目前正在使用令人惊叹的Meteor平台开发应用程序。我想对我的收藏品做点什么,但是从目前为止我看到的例子中我无法真正找到它。
基本上我想显示一个包含自己倒计时的项目列表。每个项目核心数据来自一个集合。每个倒计时开始时间必须在服务器端计算,不能保存在任何地方。每个倒计时都是客户端计算的,不会保存在任何地方。
我有一个名为“items”的集合来自我的MongoDb数据库。在我的集合中,文档的开头可能如下所示:
{ name: "My countdown"}
1)我想在文档服务器端“扩展”添加计算属性“startTime”。文件可能看起来像那样:
{ name: "My countdown", startTime: 40 }
我想我需要使用发布方法,但我真的不知道如何以这种方式扩展现有文档。
2)我想在文档客户端“扩展”添加本地属性“currentTime”,我将使用setInterval进行更新。文档可能看起来像那样:
{ name: "My countdown", startTime: 40, currentTime: 5 }
也许在那里使用转换,但我再也没有真正了解如何扩展现有文档。
3)我会喜欢2个新的属性被动反应,因此如果它们发生变化,会在UI中触发一些更新。
因此,如果我能得到任何起点和良好的实践,我们将非常感激:)
非常感谢你的帮助!!
答案 0 :(得分:0)
您可以更新Collection
的文档:最佳做法是在服务器上执行此操作。
client.js
Meteor.call('setStartTime',
[your_document_id],
[new_start_time],
function(err, val) {
if (err) {
console.error(err);
} else {
// Successful.
}
});
server.js
Meteor.methods({
'setStartTime': function(itemId, newStartTime) {
Items.update(itemId, {
$set: { startTime: newStartTime }
});
}
});
这将设置或更新商品的startTime
。 (请谨慎,因为任何有权访问您的JavaScript的人都可以在客户端看到您的setStartTime
电话。这是有效的,但不安全。)