Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates Meteor模板和模板助手_Templates_Meteor_Helpers - Fatal编程技术网

Templates Meteor模板和模板助手

Templates Meteor模板和模板助手,templates,meteor,helpers,Templates,Meteor,Helpers,这是我无法理解也无法解决的事情 举个简单的例子 模板帮助程序: Template.bookDetails.helpers({ book: function() { console.log("Current router :_id: " + Router.current().params._id); return Books.findOne(Router.current().params._id); } 模板的某些行: <template name

这是我无法理解也无法解决的事情

举个简单的例子

模板帮助程序:

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>

...
{{{带书}
书名:{{book.Title}}
作者:{{book.Author}}
ISBN:{{book.ISBN}}
更多 {{/与}} ...
问题是:为什么我在模板中看到print console.log()的次数和call
book.some\u字段的次数一样多?


正常吗?

是的,这是正常的,因为您的代码实际上多次调用
book
帮助程序

您必须将代码替换为以下代码以使事情更简单:

{{#with book}}
  Title: {{title}} <br>
  Author: {{author}} <br>
  ISBN: {{isbn}} <br>
{{/with}}
{{{带书}
标题:{{Title}}
作者:{{Author}}
ISBN:{{ISBN}}
{{/与}}

带有
结构的
#将当前数据上下文设置为帮助程序返回的值,然后您可以访问每个属性,而无需参考
书籍

除非代码中有其他内容正在更改该帮助程序函数的数据上下文,否则您只能查看日志一次。也就是说,您的
路由器.current().params.\u id
是否有任何变化?也。。。如果愿意,可以使用
{{title}}
而不是
{{book.title}}