【问题标题】:Accessing javascript variables inside partial in handlebars.js / express-handlebars在handlebars.js / express-handlebars中访问部分内部的javascript变量
【发布时间】:2018-02-09 06:10:39
【问题描述】:

首先,很抱歉提出一个以前以类似方式提出过的问题。我就是找不到任何适合我的解决方案。

我将 handlebars.js 与 node.js 中的 express-handlebars 库一起使用。我已经正确设置了服务器和客户端渲染,并且可以毫无问题地使用通过路由器传入的数据渲染部分。

但是,我正在努力访问页面上下文并呈现页面脚本中声明的 javascript 数据。

页面sn-p:

 <script type="application/javascript">var hash = {
        var1:'this is the data I want to render', 
        var2: 'this is some more data i want to render'}</script>

            <div id="thisdiv">
                {{> blag this.hash}}
            </div>

部分“吹嘘”:

<div class="blag-partial">
    {{this.var1}}
    {{this.var1}}
</div>

我无法在我的散列变量中获取值 var1 来呈现。 如果我将硬编码字符串传递给部分,那么它可以正常工作,但我似乎永远无法访问我称之为“页面上下文”的内容。

我做错了什么,我似乎永远无法让它工作?

我试过了……

  • 将“this”作为上下文传递给部分

  • 使用 '../variablename' 语法将其传递到部分

  • 将键值对发送到部分

  • 在局部调用和局部内部都使用@符号从上下文访问变量

...以及这些东西的许多其他组合。除非我传入硬编码字符串,否则尝试 100% 失败。

任何帮助将不胜感激。我觉得这应该很简单。

【问题讨论】:

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


    【解决方案1】:

    好的,所以为了解决这个问题,我需要更改 JavaScript 以实际分级对我想要输出的 div 的引用并注入,然后使用我想要作为参数传递给模板的数据调用模板

    var hash1 = {
        var1:'this is the data I want to render',
        var2: 'this is some more data i want to render'};
    document.querySelector('#thisdiv').innerHTML = blagTemplate(hash1);

    我将部分定义更改为:

    <div class="blag-partial">
        {{#with this}}
            {{var1}}
            {{var2}}
        {{/with}}
    </div>

    我的第二个错误是我认为我可以将这个脚本内联到页面的脚本标签中,但它根本不起作用。

    我认为我最大的错误是认为“express-handlebars”npm 模块实际上为我做的比实际做的要多。 实际上......它会自动在我指定的任何目录中编译我的模板和部分,仅此而已。

    所以当我看像https://www.youtube.com/watch?v=4HuAnM6b2d8这样的教程时,我仍然需要做同样的过程……我可以跳过编译过程,因为模板/部分已经在我的快速节点服务器中编译。

    现在我意识到这没关系,我只是误解了我应该期待什么。 如果有人有任何相反的知识,请随时分享。

    我希望这可以帮助至少 1 人,因为它让我沮丧了好几个小时! :)

    【讨论】:

      猜你喜欢
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多