【问题标题】:meteorjs get information from main-yield with iron-routermeteorjs 使用 Iron-router 从 main-yield 获取信息
【发布时间】:2014-04-08 04:14:32
【问题描述】:

我在流星中有一个小项目,我正在使用 Iron-router 进行路由。

在我的布局中是主要产量和顶部面板产量。看起来像这样:

<div id="top">
   {{> yield region="top"}}
</div>
<div id="content">
   {{> yield}}
</div>

在主要产量中返回一个对象,我在顶部产量字段中也需要该对象。所以我的问题是,是否有一种解决方案可以在内置方法中将对象从 main-yield 变为 top yield?

像这样的:

// yield region = top Template
{{title}}

title 在这种情况下是来自 main-yield 对象的属性。我需要将此对象“添加”到我的最高产量模板中,以使用模板中的所有属性以及最高产量模板的模板助手中的所有属性。

【问题讨论】:

  • 主yield怎么设置title
  • 它来自于模板Helper,用于main-yield中的模板。所以也许问题更多的是“如何让其他模板助手”进入我的模板。我的例子有点糟糕。非常遗憾。给出以下情况。我有一个包含数据的 URL,例如 /url/:_id。由于这个 URL,yield 模板从集合中获取一个对象。我需要在另一个产量字段中使用这个对象。
  • 另外,可以在最高产模板助手中读取 Router.current().params 并再次获取集合以获取所有数据。但我希望有一种更简单的方法来获取这些数据。
  • 最简单的可能就是使用Session 变量。将它设置在你的主要产量助手中(_id 是已知的),然后在top 区域中获取它

标签: javascript meteor iron-router


【解决方案1】:

模板助手就是这样——它们帮助当前的模板。因此,没有简单的方法可以访问其他模板的帮助程序,也不应该如此,因为这会违反所需的应用程序结构。你应该想出一个不同的解决方案来解决你的问题,我相信你会找到很多。

例如,您可以使用全局帮助器。可以从应用程序中的所有模板访问它。

您还可以将代码从帮助程序移动到路由器路径中的数据对象。路由器正在渲染的所有模板都可以访问数据对象——布局模板、主产量、命名产量。如果适用,这是推荐的解决方案,因为它将您返回的对象封装到较小的所需区域。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2014-07-15
    • 2015-03-06
    • 1970-01-01
    • 2015-06-26
    相关资源
    最近更新 更多