您的位置:首頁技術文章
文章詳情頁

node.js - Express模板引擎handlebars里面{{#each XXX}}中使用locals.xx 不起作用的

瀏覽:68日期:2024-07-29 15:25:29

問題描述

就是設置了

res.locals.username = xxx然后頁面里面想要在{{#each}}里使用username

{{#each 不管是什么}} <p>{{username}}</p>{{/each}}username是沒有值的要怎么樣才能在{{#eac}}里使用locals.xx呢

node.js - Express模板引擎handlebars里面{{#each XXX}}中使用locals.xx 不起作用的node.js - Express模板引擎handlebars里面{{#each XXX}}中使用locals.xx 不起作用的node.js - Express模板引擎handlebars里面{{#each XXX}}中使用locals.xx 不起作用的

問題解答

回答1:

這用法沒錯。

首先保證 username 有值。

不能出現在遞歸 partial里。

如果不是遞歸partial仍然無輸出值,那肯定是username無值,不是handlebars的原因。

再者,你也沒說用的哪個handlebars實現?是Express集成的 hbs 還是 handlebars?如果是后者,還需要一些集成工作要做。

-------------------------UPDATE----------------------------

我也剛實驗了一下,發現在 {{#each}} 里確實沒法使用 locals 變量。我之前在 hbs 官方倉庫里提了一個 issue,以為只是在 recursive partials 里才不能用 locals,其實我測試的那個partial里也是用到了 {{#each}},跟是否遞歸沒關系。這應該是 hbs 的一個 bug。我會更新那個 issue,說明這個問題。

issue:https://github.com/pillarjs/h...

------------------------UPDATE-------------------------------

先給你提供一個臨時解決思路吧:

把 loginUserPhoto 加入到 render context 里,然后在 {{#each}} 里使用 {{@root.loginUserPhoto}}訪問就可以了。

相關文章:
国产综合久久一区二区三区