node.js - Express模板引擎handlebars里面{{#each XXX}}中使用locals.xx 不起作用的
問題描述
就是設(shè)置了res.locals.username = xxx然后頁面里面想要在{{#each}}里使用username
{{#each 不管是什么}} <p>{{username}}</p>{{/each}}username是沒有值的要怎么樣才能在{{#eac}}里使用locals.xx呢
問題解答
回答1:這用法沒錯(cuò)。
首先保證 username 有值。
不能出現(xiàn)在遞歸 partial里。
如果不是遞歸partial仍然無輸出值,那肯定是username無值,不是handlebars的原因。
再者,你也沒說用的哪個(gè)handlebars實(shí)現(xiàn)?是Express集成的 hbs 還是 handlebars?如果是后者,還需要一些集成工作要做。
-------------------------UPDATE----------------------------
我也剛實(shí)驗(yàn)了一下,發(fā)現(xiàn)在 {{#each}} 里確實(shí)沒法使用 locals 變量。我之前在 hbs 官方倉庫里提了一個(gè) issue,以為只是在 recursive partials 里才不能用 locals,其實(shí)我測(cè)試的那個(gè)partial里也是用到了 {{#each}},跟是否遞歸沒關(guān)系。這應(yīng)該是 hbs 的一個(gè) bug。我會(huì)更新那個(gè) issue,說明這個(gè)問題。
issue:https://github.com/pillarjs/h...
------------------------UPDATE-------------------------------
先給你提供一個(gè)臨時(shí)解決思路吧:
把 loginUserPhoto 加入到 render context 里,然后在 {{#each}} 里使用 {{@root.loginUserPhoto}}訪問就可以了。
相關(guān)文章:
1. sql語句 - mysql中關(guān)聯(lián)表查詢問題2. css - chrome下a標(biāo)簽嵌套img 顯示會(huì)多個(gè)小箭頭?3. javascript - 如何將一個(gè)div始終固定在某個(gè)位置;無論屏幕和分辨率怎么變化;div位置始終不變4. html - vue項(xiàng)目中用到了elementUI問題5. javascript - iframe 為什么加載網(wǎng)頁的時(shí)候滾動(dòng)條這樣顯示?6. python - django models 為生成的html元素添加樣式。7. javascript - vscode alt+shift+f 格式化js代碼,通不過eslint的代碼風(fēng)格檢查怎么辦。。。8. javascript - 有什么比較好的網(wǎng)頁版shell前端組件?9. mysql updtae追加數(shù)據(jù)sql語句10. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?
