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 ?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top