是否有一个集合订阅继承传递到子模板

时间:2017-06-05 14:00:15

标签: meteor meteor-blaze

考虑以下模板层次结构,

  1. '的 A '有2个模板' B'和' C'。
  2. '的'有2个模板' D '和' E '。
  3. 我的问题是流星集合是否以模板' A '可以在帮助模板' E '因为' A '有' B '和' B '有' E '?

      

    注意 :如果是/否为什么?

3 个答案:

答案 0 :(得分:1)

该数据是否可用?可能。

如果模板A在其onCreated()中设置sub,并附加到" this",那么这意味着当模板被销毁时,sub将消失。

如果子模板设置如下:

<template name="A">
  {{> B}}
</template>

...在渲染B时不会销毁模板A.

这意味着模板B应该能够在minimongo中执行find()并查看A订阅的数据。

就个人而言,我更倾向于将A&#34;拥有的任何数据从A传递给B&#34; B使用。但这在非反应场景中效果更好。如果B需要查找()数据并期望它是被动的,那么我通常会让B也订阅该数据。 imho,在这种情况下更明确的是让B也订阅,因为如果它从A上下文中取出,它将停止工作。

答案 1 :(得分:0)

如果您将数据传递给子模板,则数据可作为帮助程序使用。

你可以这样做:

{{> childTemplate post=post}}

然后

<template name="childTemplate">
  {{post.title}}
</template>

答案 2 :(得分:0)

订阅数据受限于您订阅的范围。 你可以Template.instance().subscribe('subscription_name')。然后,数据将可用于Template实例。

也可以Meteor.subscribe('subscription_name')。然后将数据范围限定为Meteor环境。在这种情况下,也可以从子模板访问will数据。但是,对于敏感数据,这并不值得推荐。

最后的替代方案是,像在Afifs的回答中一样,给孩子模板提供一个有效且整洁的参数数据。