0

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

我正在使用 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 块助手看起来很有希望,但不幸的是它没有达到我的预期。

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

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

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

</div>

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

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

有人知道我该怎么做吗?

提前致谢。

4

1 回答 1

0

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

于 2018-02-07T23:00:59.350 回答