繁体   English   中英

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

[英]How to bind server side events on client objects and vice versa with meteor

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

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

我可以将Meteor#方法用于所有事件,但这似乎很奇怪。

还是可以例如在客户端和服务器范围之外使用EventEmitter来指定事件处理程序,以便它在两侧都可用,并且可以在同一对象上触发/绑定事件?

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

问候菲利克斯

更新:

如果应该将用户事件映射到服务器端操作,则使用Meteor#方法非常有用。 另一方向尚不清楚。 服务器端的异步操作可以将其结果持久保存在客户端发布/订阅的集合中,由于响应上下文,该集合又可以更新某些视图。 但这很奇怪,导致持久存在此类信息缓慢,浪费了空间和时间。 有什么建议么?

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

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

如何在Session中存储进度? 您可以执行以下操作:

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

然后,无论何时在服务器上更新会话,客户端模板都会自动获取这些更改。

出于好奇,您究竟如何在服务器上执行异步操作? 我仍在设法弄清楚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM