【发布时间】:2013-03-22 11:51:20
【问题描述】:
我已经从缔约方示例中改编了 server.js。
我希望它只发布以下用户,而不是让“目录”发布所有用户:
- 拥有当前用户受邀参加的派对
- 被邀请参加当前用户被邀请参加的派对
- 被邀请加入当前用户拥有的派对
请看这里:https://github.com/dimfisch/meteor-dependency/blob/master/parties/server/server.js
问题在于,当当前用户邀请新用户(新用户是指他们之前没有与派对相关的意义上)或被新用户邀请时,“目录”订阅不会更新,因为反应性在返回的光标上,在这些情况下不会改变。
以下是重现这种情况的步骤:
- 打开两个不同的客户,比如 Joe 和 Kate
- Joe 创建了一个新的私人派对并邀请了 Kate
- Kate 看到了那个新派对,但在 Meteor.users 中没有得到任何关于 Joe 的信息
- 我想让 Joe 出现在 Kate 的客户中
所以问题是,如何实现? 一种可能的方法是在“目录”发布函数中使“各方”光标观察更改。但我不确定这是否真的有效,我想知道是否有更直接的解决方案。
【问题讨论】:
-
repro 不起作用... Joe 无法邀请 Kate,因为未发布完整的用户列表。也许用命令更新以在控制台中运行?
-
@alanning 是的,这是真的。我的应用程序基于派对示例,我添加了很多代码让用户能够使用电子邮件地址邀请其他人参加派对,但这不在派对示例中......所以这就是我所做的:我创建两个用户,joe@example.com 和 kate@example.com。他们两个的密码都是“示例”。我为 Joe 创建了一个名为“Test Party 1”的派对。我通过在控制台中输入以下内容来邀请 Kate: Meteor.call("invite", Session.get("selected"), "Ld96cayfGZrzSLLn2") 最后一部分是 Kate 的 userId。 [消息太长,下一条评论跟进]
-
它有效,但在 Kate 的控制台上执行 Meteor.users.find().fetch() 仍然显示一个对象,即她自己。对乔来说没什么。当然,如果您刷新页面,它就会显示出来,但这不是您想要的行为。
标签: meteor