一个发布对另一个发布隐藏嵌套字段
One publication is hiding nested fields from another publication
给定名为 Foo 的同一集合的两个出版物。fooList 应该只返回特定的字段,但 fooDetail 应该返回整个文档。
服务器:
Meteor.publish 'fooList', ->
return Foo.find(
{}
{ fields:
foo: true
'bar.bas': true
})
Meteor.publish 'fooDetail', (foo_id) ->
return Foo.find _id: foo_id
客户:
Meteor.subscribe 'fooList'
Meteor.subscribe 'fooDetail', some_id
我希望在订阅fooDetail时获得完整的foo。但是"bar"(嵌套文档)中的所有字段都不可用,除了"bar.bas"字段。
这是一个错误还是流星应该以这种方式工作?(我目前在流星1.0.3.2和铁路由器上)
这不是一个错误,这是流星合并框的已知限制。这是困扰大多数流星开发人员的令人困惑的问题之一。
从文档中:
如果多个订阅为一个字段发送冲突的值(相同的集合名称、文档 ID 和字段名称),则客户端上的值将是任意选择的已发布值之一。
您可以查看此帖子以了解可能的解决方法。在您的示例中,您可以将发布修改为如下所示:
Meteor.publish 'fooList', ->
Foo.find {}, fields: foo: 1, bar: 1
这将发布所有顶级bar
字段,以避免冲突,但在您的特定用例中可能不被接受。
你的酒吧/订阅看起来不错。我的猜测是你没有为fooDetail
潜艇增加反应性。帮我一个忙:
- 将两个子放在铁路由器上的
waitOn
中,将静态值传递给fooDetail
。 - 在 minimongo 中验证静态 id 的其他字段是否存在。 将
- 潜艇包裹在
Template.Instance().autorun
中
相关文章:
- 一个发布对另一个发布隐藏嵌套字段
- Ember.js-隐藏嵌套资源中的父视图
- 隐藏嵌套列表的非活动同级
- 未在选择标记下拉列表中选择以隐藏其他输入元素的嵌套控制器
- 按嵌套的隐藏输入值对
- 元素进行排序
- 点击时设置隐藏嵌套列表格式有问题
- 如何使用JQueryFancybox2将嵌套输入隐藏子项的值获取到自定义内容中
- 有角度的ng显示/ng隐藏嵌套ng重复中的问题
- 处理嵌套表单中的许多隐藏字段
- 显示/隐藏嵌套复选框-jQuery
- html嵌套表通过单击表行第一个td来隐藏或显示表行
- 隐藏菜单中的嵌套选项
- 如果嵌套Div为空,则隐藏父Div
- 如何显示隐藏元素和显示嵌套元素
- 带显示和隐藏事件的3个嵌套可折叠元素
- 当父元素被点击时,AngularJS会隐藏一个嵌套元素
- 如何隐藏第三个嵌套列表在这个css下拉嵌套列表
- 隐藏在递归树中嵌套两次以上的元素
- 显示嵌套视图时隐藏父视图
- 当父级宽度为0时,如何隐藏嵌套元素