Meteoro modelo de ajudantes acessados em cada chamada
-
26-12-2019 - |
Pergunta
Eu li este Meteoro modelo de ajudantes de fogo várias vezes e tentei reproduzir esse, sem quaisquer conjuntos envolvidos.
Então, eu tenho ajudante, como este:
Template.myTemplate.helpers({
test: function(){
console.log("Fired");
return {
name : "Foo"
};
}
});
E o modelo se parece com isso:
<template name="myTemplate">
{{test.name}}{{test.name}}
</template>
No console eu esperava ver "Demitido" apenas uma vez, mas o auxiliar é chamado, na verdade, duas vezes ?Por isso, se a minha ajudante está acessando a coleção e a obtenção de dados a partir daí, toda vez que eu usar {{auxiliar.chave}} executa uma consulta?isso é como ele deve funcionar ?
Solução
Sim, você está certo o modelo de sistema de chamada de um auxiliar para cada vez que você usá-lo em seu modelo.
Eu acho que você está perguntando é se isso é eficiente para as coleções, já que eles são chamados de novo e de novo.
É por isso que meteoro da .find()
retorna um cursor que é uma espécie de cache.Você pode ver isto se você tentar encontrar alguma coisa com a .find()
, você teria um objeto, mas, na verdade, não os seus dados.O cursor somente de busca de dados, como é o necessário para que ele não é tão ineficiente como pode parecer.
Acrescentar .fetch()
na verdade, busca os dados e não usar esse cache é por isso que é menos eficiente, e muitas vezes sugerido para ser utilizado como return
valor do auxiliar.