node.js - Express模板引擎handlebars里面{{#each XXX}}中使用locals.xx 不起作用的
問題描述
就是設置了res.locals.username = xxx然后頁面里面想要在{{#each}}里使用username
{{#each 不管是什么}} <p>{{username}}</p>{{/each}}username是沒有值的要怎么樣才能在{{#eac}}里使用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}}訪問就可以了。
相關文章:
1. mysql 查詢身份證號字段值有效的數據2. python bottle跑起來以后,定時執行的任務為什么每次都重復(多)執行一次?3. 視頻文件不能播放,怎么辦?4. html5 - HTML代碼中的文字亂碼是怎么回事?5. python - 爬蟲模擬登錄后,爬取csdn后臺文章列表遇到的問題6. visual-studio - Python OpenCV: 奇怪的自動補全問題7. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處8. javascript - 彈出一個子窗口,操作之后關閉,主窗口會得到相應的響應,例如網站的某些登錄界面,django后臺的管理等,這是怎么實現的呢?9. javascript - ios返回不執行js怎么解決?10. android - 分享到微信,如何快速轉換成字節數組
