【发布时间】:2017-02-01 03:23:27
【问题描述】:
试图更好地理解数据上下文在 Meteor 中的工作原理,因为我无法弄清楚我面临的这个问题。在任何地方都没有找到明确的答案。我有以下模板
<template name="list">
{{#each listItem}}
{{> listItemDetail}}
{{/each}}
</template>
<template name="listItemDetail">
<p>{{_id}} {{title}}</p>
<p>{{idViaHelper}}</p>
</template>
在我的 Javascript 中我有
Template.list.helpers({
'listItem': () => {
return List.find().fetch();
})
Template.listItemDetail.helpers({
'idViaHelper': () => {
return this._id
})
就我对 Meteor 中数据上下文的理解而言,使用 #each 将 listItemDetail 模板的每个实例的上下文设置为从 listItem 帮助器返回的文档。
当在listItemDetail 模板中使用{{_id}} 时,这正如我所期望的那样工作,显示文档的ID。
但如果我尝试通过使用this._id 的助手{{idViaHelper}} 获得相同的_id,我会得到undefined。当我尝试console.log(this) 时,它告诉我this 指的是Window 对象。但我不知道为什么。发生了什么,为什么模板助手中没有获取数据上下文?
这是我的第一篇文章,感谢您的帮助!
【问题讨论】: