Javascript Meteor助手函数在使用';芬顿';
让我们假设我有一本书:Javascript Meteor助手函数在使用';芬顿';,javascript,performance,meteor,meteor-helper,Javascript,Performance,Meteor,Meteor Helper,让我们假设我有一本书: { title : "string", author : "string" } 让我们看一下以下代码: Template.bookList.helpers({ books: function() { console.log('meteor'); return Posts.find(); } }); 在这种情况下,“流星”将打印一次。但是如果我像这样使用findOne: Template.bookItem.helpers({
{
title : "string",
author : "string"
}
让我们看一下以下代码:
Template.bookList.helpers({
books: function() {
console.log('meteor');
return Posts.find();
}
});
在这种情况下,“流星”将打印一次。但是如果我像这样使用findOne
:
Template.bookItem.helpers({
book: function() {
console.log('meteor');
return Posts.findOne({'title':'title of the book'});
}
});
“流星”将被打印几次(在某些情况下是六分之二)
为什么 您应该使用{{{{#with}}
来触发函数吗?
有时
{{{#if}}
在destine上不起作用这是因为助手
在任何数据更改时都是被动的,它将重新运行函数:)您可以执行返回帖子代码>禁用它。我尝试了这个。但是结果仍然是一样的。我认为你的书籍
模板助手将被执行多次,因为你的书籍
集合中有多个文档,并且你将书籍项目
模板包含在{{{each Books}{{>booksitem}{/each}{/code>中。不,我没有在这里使用每一个,如果使用each,我会得到以下错误未捕获错误:{{{each}当前仅接受数组、游标或假值。
@distalx如果仍在重新运行,请查看模板级别是什么导致模板重新呈现的?如果不是数据更改,则是模板重新渲染。显示您的模板代码。您还可以尝试在onRendered中执行console.log()
,看看它是否也会被多次调用?