javascript - Meteor renderList 拦截?客户端

标签 javascript meteor

我的聊天消息显示如下:

  {{#each msg}}
    {{> chatMsg}}
  {{/each}}

当用户进入聊天时,我将文档添加到集合中,用户加入聊天。当用户快速重新进入并离开聊天时,我不想一遍又一遍地重复用户加入聊天。我想显示类似 user joins the chat x3 的内容。

有没有办法通过 Hook renderList 在客户端执行此操作?我知道我可以在服务器端更改文档,但这似乎不必要的密集。

最佳答案

从这里到达那里的最简单方法是编写一个自定义发布者。不要只是从发布函数返回游标,而是在发布函数中对游标调用observe(),并在其中执行适当的set()、unset() 和flush() 调用,这些调用会适本地乘以先前的游标消息而不是添加新消息。您可以在meteor documentation for Meteor.publish找到相关文档。

为了得到比较的依据,可以查看当前发布Cursor的代码,该代码位于packages/mongo-livedata/mongo_driver.js中的Cursor.prototype._publishCursor中。

注意:我的答案是针对 Meteor 0.5.2 的。自定义发布者的 API 将在 Meteor 的 future 版本中发生变化,并且您必须调用与 set()、unset() 和lush() 不同的函数

关于javascript - Meteor renderList 拦截?客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13663765/

相关文章:

javascript - Foundation 5 顶部栏下拉项的自定义事件

JavaScript 让独立的函数在不定义 new 的情况下工作

javascript - meteor js : how to query for posts that have recently been rated?

javascript - 根据它们所在的背景显示文本颜色

javascript - 使用appendchild和html表的乘法表

javascript - 如何在选项卡切换之间保持 Ext.Panel 滚动条位置

javascript - 多态地调用一个函数

meteor - 将 Filepicker.IO 与 Meteor 集成

javascript - meteor /包的目的是什么?

node.js - 运行mupx部署时引发新的NodeJS错误