Meteor 模板和模板助手
Posted
技术标签:
【中文标题】Meteor 模板和模板助手【英文标题】:Meteor template and template helper 【发布时间】:2015-01-06 23:29:03 【问题描述】:这是我无法理解也无法解决的问题......
简短的例子。
模板助手:
Template.bookDetails.helpers(
book: function()
console.log("Current router :_id: " + Router.current().params._id);
return Books.findOne(Router.current().params._id);
模板的一些行:
<template name="bookDetails">
...
#with book
Title: book.title <br>
Author: book.author <br>
ISBN: book.isbn <br>
...more...
/with
...
</template>
问题是:为什么我看到 print console.log() 的次数与在模板中调用 book.some_field
的次数一样多?
正常吗???
【问题讨论】:
您应该只看到一次日志,除非您的代码中有其他内容正在更改该辅助函数的数据上下文。 IE。你的Router.current().params._id
有变化吗?另外...如果您愿意,可以使用title
而不是book.title
【参考方案1】:
是的,这是正常的,因为您的代码实际上多次调用了 book
助手。
您必须将您的代码替换为以下代码以使事情变得更简单:
#with book
Title: title <br>
Author: author <br>
ISBN: isbn <br>
/with
#with
结构将当前数据上下文设置为助手返回的值,然后您可以访问每个属性而无需引用 book
。
【讨论】:
以上是关于Meteor 模板和模板助手的主要内容,如果未能解决你的问题,请参考以下文章