模板 – 流星模板和模板助手

这是我无法理解的东西,无法解决它……

简短的例子.

模板助手:

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.

点赞