这是我无法理解的东西,无法解决它......
简短的例子。
模板助手:
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
的次数相同?
这是正常的吗?
答案 0 :(得分:2)
是的,这是正常的,因为您的代码实际上多次调用book
帮助程序。
您必须使用以下代码替换代码以简化操作:
{{#with book}}
Title: {{title}} <br>
Author: {{author}} <br>
ISBN: {{isbn}} <br>
{{/with}}
#with
结构将当前数据上下文设置为帮助程序返回的值,然后您可以访问每个属性而不引用book
。