2

是否可以将服务器端事件直接绑定到流星中的客户端对象?

例如,我想在服务器端事件触发时更新视图。另一方面,我想在用户单击视图项时触发服务器端方法。

我可以对所有事件使用Meteor#methods但这似乎很奇怪。

或者我可以指定一个事件处理程序,例如在客户端和服务器范围之外使用EventEmitter以便它在双方都可用并触发/绑定事件 ob 那个对象?

有些人对此感到困惑,我感谢您提供正确方向的提示。

问候菲利克斯

更新:

在用户事件应该映射到服务器端操作的情况下,使用 Meteor#methods 非常有效。另一种方式仍然不清楚。服务器端的异步操作可以将它们的结果保存在一个集合中,该集合被发布/订阅到客户端,这反过来又可以由于反应上下文而更新某些视图。但这很奇怪,因为坚持这种信息很慢,浪费空间和时间。有什么建议么?

4

2 回答 2

1

我相信您可以在服务器端使用 Collection.observe 来“观察”集合上的事件,因为客户端正在插入、更新、删除等……如果您只专注于集合,这可能是一个开始。我将它用作一种服务器端事件循环来监视集合更改。

当用户单击视图中的某些内容时,尝试将模板事件绑定到 View css 选择器,然后调用 Meteor 方法,该方法将通知服务器该事件。请参阅将键处理程序和/或按钮处理程序绑定到 Template.entry.event 的示例,然后调用 Meteor 方法通知服务器发生了某些事情。

于 2012-05-06T13:43:04.640 回答
0

在 Session 中存储进度呢?你可以这样做:

Template.progress.value = function() {
    return Session.get('progress');
}

然后,每当您更新服务器上的 Session 时,客户端模板都会自动获取这些更改。

出于好奇,您究竟是如何在服务器上执行异步操作的?我仍在试图弄清楚这一点。

于 2012-05-10T00:17:57.027 回答