如何使用meteor绑定客户端对象上的服务器端事件,反之亦然

时间:2012-05-06 10:33:59

标签: javascript events rpc meteor

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

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

我可以将Meteor#methods用于所有事件,但这看起来很奇怪。

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

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

此致 菲利克斯

更新

使用Meteor#方法可以很好地将用户事件映射到服务器端操作。反过来仍然不清楚。在服务器端上的异步操作可以将它们的结果保存在一个集合中,该集合被发布/下载到客户端,由于反应性上下文,它可以更新某些视图。但那很奇怪,导致这种信息持续缓慢,浪费空间和时间。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我相信您可以使用服务器端的Collection.observe在客户端插入,更新,删除等时“观察”集合上的事件......如果您只关注集合,那么这可能是一个开始。我把它用作一种服务器端事件循环来监视集合的变化。

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

答案 1 :(得分:0)

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

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

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

出于好奇,您究竟是如何在服务器上执行异步操作的?我还在努力解决这个问题。