【发布时间】:2013-07-12 11:47:00
【问题描述】:
我在模板导航中有一个名为 {{renderNav}} 的模板助手
例如
Template.Nav.renderNav
在那个辅助函数中,我想在不同的模板中解析另一个辅助函数的渲染输出
例如助手
Template.contentWindow.content
为
提供html{{content}}
我的 renderNav 助手想要分割替换 {{content}} 的 html 以生成 html
{{renderNav}}
我该怎么做?现在 {{renderNav}} 助手执行或运行得更快,因此它无法解析替换 {{content}}
的 html@Hugo - 我按照您的建议在代码中执行了以下操作
Template.contentWindow.rendered = function() {
debugger;
return Session.set('entryRendered', true);
};
Template.Nav.renderNav = function() {
debugger;
var forceDependency;
return forceDependency = Session.get('entryRendered');
};
当我运行它时,调试器在执行 renderNav 帮助程序时首先停止。 (这与我在比赛条件方面看到的情况是有道理的)。然后 contentWindow 呈现,我在 Session.set('entryRendered', true) 上方打断点。但是随后 renderNav 不会按照您的建议再次运行。我是否误解或错误地执行了您的建议?
【问题讨论】:
-
不确定您要做什么。假设
content在renderNav之前结束。如何从renderNav中访问contenthtml? -
我正在尝试访问内容助手从 renderNav 助手中呈现的 html。这导致了一种竞争条件,其中 renderNav 首先执行并且无法访问内容助手输出的 DOM HTML。
-
虽然你可以破解它,但听起来你做错了事。为什么需要自己渲染的模板的 DOM?您应该在
renderNav上下文中拥有所需的所有数据。也许你可以添加一些renderNav代码来解释它如何使用contentDOM 段。 -
你可能是对的,我没有以一种非常迅速的方式来做这件事......在这种情况下,代码片段不会很有描述性,但解释是...... {{content}}助手呈现为一个页面,其中包含任意数量的标题(H1、H2、H3 等......); renderNav 助手是侧边栏模板的一部分,它解析这些标题的内容并有效地构建目录 --- 所以我不知道如何将内容助手生成的 html 传递给 renderNav 助手
-
查看我的答案的更新。有帮助吗?
标签: javascript meteor handlebars.js