从流星中的循环调用外部模板
Posted
技术标签:
【中文标题】从流星中的循环调用外部模板【英文标题】:Calling external template from a loop in meteor 【发布时间】:2017-03-31 09:30:12 【问题描述】:来自 Meteor 模板教程:(https://www.meteor.com/tutorials/blaze/templates)
我们看到我们可以在tasks
的循环内调用模板> task
。但是,当我尝试在自己的文件中获取任务模板时 - 它不再有权访问数据。这样做的正确方法是什么?
<body>
<div class="container">
<header>
<h1>Todo List</h1>
</header>
<ul>
#each tasks
> task
/each
</ul>
</div>
</body>
<template name="task">
<li>text</li>
</template>
【问题讨论】:
这是因为您需要为模板设置一个data context
。 #each
正在为您的主容器执行此操作。你可以用#with
做一个文档
但是我还在用#each,只是任务模板不在同一个文件里了。我将研究为模板设置数据上下文。谢谢!
“不再有权访问数据”是什么意思?是不是说task
里面不能访问外层模板的数据?
是的,但正如我在回答中指出的那样,这不是因为它是外部的,而是因为所需的助手不可用。现在一切都好。再次感谢!
【参考方案1】:
想通了。基本上,我在main.js
中导入了task.html
,而不是随附的task.js
。所以我所有的条件助手都没有加载,因此没有工作。
【讨论】:
【参考方案2】:我们需要将值传递给我们正在调用的模板。我假设任务助手已实现。这里我使用 'this' 传递当前值。
<body>
<div class="container">
<header>
<h1>Todo List</h1>
</header>
<ul>
#each tasks
> task this
/each
</ul>
</div>
</body>
<template name="task">
<li>this</li>
</template>
【讨论】:
以上是关于从流星中的循环调用外部模板的主要内容,如果未能解决你的问题,请参考以下文章