【问题标题】:express-handlebars accessing variables declared in the client javascriptexpress-handlebars 访问在客户端 javascript 中声明的变量
【发布时间】:2018-02-08 07:51:23
【问题描述】:

我正在学习在我的网站中使用把手作为模板。

我正在使用 node.js,所以我使用了 express-handlebars 模块,因为它看起来很流行并且有很多支持。

我这样设置了一些基本配置..

var exphbs = require('express-handlebars');
app.set('views', path.join(__dirname, 'views'));
app.engine('handlebars', exphbs({
    defaultLayout: 'layout',
}));
app.set('view engine', 'handlebars');

我的理解是,我在把手中的视图(即我的内容页面)是把手中的模板,我认为这些模板是代表我编译的,以便我可以专注于使用它们。

现在,我可以将数据从我的节点快速路由器传递到模板,然后使用把手符号 {{ variable }} 访问和呈现模板中的数据。

那太好了。但是....我想使用 javascript 在客户端上声明变量,这可能是从我想输入的 Ajax 调用中获取一些数据的结果。不幸的是,这似乎永远不会奏效。我无法弄清楚如何访问模板中的局部变量。肯定有办法吗?

#with 块助手看起来很有希望,但不幸的是它没有达到我的预期。

这是我的一个内容页面的 sn-p,其中有几次尝试在本地声明数据并呈现其值。

<div>
  <script>let test = {
          text: 'this is my example text'
          };
  </script>

                <div>
                    {{#with test}}
                        {{text}}
                    {{/with}}
                </div>
                
                <div>
                    {{test.text}}
                </div>

</div>

我阅读了很多文章并观看了很多视频,但我找不到任何地方有人使用“express-handlebars”模块然后呈现本地定义的数据。

我可能遗漏了一些明显的东西,但我已经挣扎了一段时间了。

请问有人知道我该怎么做吗?

提前致谢。

【问题讨论】:

    标签: node.js express handlebars.js express-handlebars


    【解决方案1】:

    好的...看起来客户端模板必须使用 webpack 单独配置。我想这是有道理的,因为 express 车把编译了模板(它只是解析为普通的 javascript,它接受我想要渲染的变量并包装在需要的 html 中),我无法通过检查器在我的客户端上找到任何模板在浏览器中。我还没有机会尝试,但这看起来很有希望:http://initialdigital.com/sharing-handlebars-templates-on-both-server-client-in-node-js-express-with-webpack/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多