/ / Node.js + Express - Como obter parciais de bigode funcionando? - node.js, express, bigode

Node.js + Express - Como obter parciais de bigode funcionando? - node.js, express, bigode

Eu estou tentando fazer com que o Bigode funcione corretamente com o Express, e como se pode imaginar, estou tendo problemas.

A linha a seguir inicializa o Bigode legal e limpo. Variáveis ​​são renderizadas como esperado.

app.register("html", require(__dirname+"/public/js/libs/mustache.js"));

No entanto, os problemas começam a subir quando as parciais são lançadas na mistura. Com Bigode, isso aqui parcial deve invocar a visualização do cabeçalho / parcial.

{{> header}}

Mas, infelizmente, nada acontece. : / Mesmo quando ofereço a parcial diretamente, o Mustache não consegue renderizá-la.

app.get("/", function(req, res) {
res.render("welcome", {
partials: {
header: "<h1>Header</h1>"
}
});
});

Então, parece que as parciais não estão funcionando. Eu encontrei um hack que faz as parciais funcionarem um pouco:

http://bitdrift.com/post/2376383378/using-mustache-templates-in-express

Depois disso, as parciais renderizam quando oferecidas diretamente na chamada de renderização (veja acima), mas ainda falha ao renderizar as parciais diretamente nas visualizações / layouts:

Layout parece algo como isto:

Behold, the header
{{> header}}
<p>Let"s move to more important stuff...</p>

A visualização de cabeçalho é algo assim:

<h1>Header</h1>

Express pode carregar as visualizações por si só ok, mas não sabe como lidar com os parciais de bigode ...

Respostas:

2 para resposta № 1

Consegui fazer isso funcionar com a última versão do hogan-express.

https://github.com/vol4ok/hogan-express

Tudo o que é necessário é instalar o hogan-express e usá-lo como mecanismo de template no express. Nenhum hacking ou ajuste necessário.


0 para resposta № 2

Eu não tenho certeza do que é exatamente na sua ./public/js/libs/mustache.js ... eu uso o módulo bigode do npm + uma variação do objeto de template você vinculou a.

Em qualquer caso, o objeto que você passa para app.register precisa ligar mustache.to_html(template, locals, partials) em algum ponto.

Você precisa passar o objeto parciais como o terceiro argumento para o bigode to_html.