node.js - {{#each ...}} 中的 Expressjs app.locals 无法访问

标签 node.js express handlebars.js locals

你好,我有一些非常简单的东西:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <link rel="stylesheet" href="{{adminUrl}}/assets/css/bootstrap/bootstrap-responsive.min.css">
    <link rel="stylesheet" href="{{adminUrl}}/assets/css/bootstrap/bootstrap.min.css">

    <script type="text/javascript" src="{{adminUrl}}/assets/js/vendors/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="{{adminUrl}}/assets/js/bootstrap/bootstrap.min.js"></script>
</head>
<body>

<div style="padding: 20px; background: #fafafa; border-bottom: solid 1px #eee">
    <a href="{{adminUrl}}/users/" class="btn">users list/no paging</a>
    <a href="{{adminUrl}}/create/" class="btn">create new user</a>
</div>

    <h1>List data:</h1>

    <ol>
        {{#each data}}
            <li>
                <div><a href="{{adminUrl}}/details/{{id}}"><b>{{username}} - {{id}}</b></a></div>
                {{email}}
                <div>&nbsp;</div>
            </li>
        {{/each}}
    </ol>


</body>
</html>

这是一个使用 Handlebars 的expressjs View 。 “adminUrl”位于 app.locals 中。

app.locals({
    adminUrl: _config.rootUrl
});

在 {{#each 之外的 css、js 和 href 链接工作得很好,但在 {{#each... 中却不行。我该如何修复它才能工作?

最佳答案

在您的 {{#each}} block 中尝试 {{../adminUrl}} ,因为我相信 Handlebars 会将上下文更改为 data 的当前成员,因此您需要 .. 来访问父上下文。

关于node.js - {{#each ...}} 中的 Expressjs app.locals 无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17151066/

相关文章:

ember.js - 使用bindAttr创建动态字符串

javascript - Ember 更新导致模板中的 promise 不等待解决

meteor - Meteor 模板中的 react 行为

node.js - 获取 s3 对象元数据然后创建流

javascript - 哈皮斯 : How to send POST objects array in POSTMAN

javascript - Express 中的动态 URL 和静态路由

node.js - 文档中的空字段会占用 Mongoose 中的空间吗?

node.js - 如何调试我的 Bower 可插拔解析器?

javascript - Node.Js 尝试通过另一个文件中的函数打印 JSON 数组

json - res.json 发送后无法设置 header