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