如何按订阅ID获取游标?

时间:2015-10-11 05:40:37

标签: javascript meteor

如何按订阅ID指定特定游标?

我有2个订阅从同一个集合中返回游标但使用不同的选择器/修饰符

我的用例的一个例子 我有一个模板用户侧栏,其中包含对User Collection的模板订阅,仅返回当前用户

此用户恰好位于人力资源部门,希望查看来自质量保证部门的所有用户,另一个模板,通过用户收集的QA部门进行过滤

我现在的问题是,通过在客户端执行.find(),它会在HR中显示所有QA用户+当前用户。

似乎从同一个集合返回的2个游标合并在一起,即使我有2个不同的订阅ID,也无法区分。

是否有方法或解决方法可以指定特定订阅返回的特定游标中的所有值?

如何让兄弟模板订阅单独工作,其中一个模板无法访问另一个模板返回的光标?

编辑:加上
在我的用例中,我没有停止侧边栏订阅,因为我希望两个模板并排出现

我对过滤客户端游标有所保留:
1)在客户端和服务器端重复相同的mongo选择器和修改器对象似乎违反了Dont-Repeat-Yourself(DRY)指南,对我来说不是完全优雅的解决方案

2)说我的收藏中有一个秘密字段,我从光标中省略,在客户端重复mongo修饰符意味着检查客户端代码会显示秘密字段的存在

1 个答案:

答案 0 :(得分:0)

这实际上是Meteor的一个功能,而不是一个bug。联合对同一集合的多个订阅。正常模式是始终包含您的查询参数,而不是仅假设iViewBHeight= viewB.getHeight(); // Prepare empty bitmap as output Bitmap result = Bitmap.createBitmap(bitmapC.getWidth(),bitmapC.getHeight() + iViewBHeight, Config.ARGB_8888); // Flush source image into canvas Canvas canvas = new Canvas(result); // Draw bitmap C to canvas 'under' view B canvas.drawBitmap(bitmapC, 0, iViewBHeight, null); // Draw view B to canvas viewB.setDrawingCacheEnabled(true); viewB.buildDrawingCache(true); canvas.drawBitmap(Bitmap.createBitmap(viewB.getDrawingCache()), 0, 0, null); viewB.setDrawingCacheEnabled(false); // Desired bitmap is at 'result' 将产生过滤数据集。另一种常见模式是在离开路线时停止当前订阅。